🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

9 total messages Started by b0bik Sun, 07 Jun 2009 20:16
OLE, prędkość działania
#52960
Author: b0bik
Date: Sun, 07 Jun 2009 20:16
20 lines
2024 bytes
Witam

Mam pytanie, co można zrobić żeby zewnętrzna aplikacja budująca
rysunek wykorzystując mechanizmy OLE działała szybciej ? Program
korzysta z biblioteki typu (czyli wczesne wiązanie). W MicroStation
było kilka opcji, które pozwalały wyłączyć ogólnie odświeżanie rysunku
i pare innych rzeczy, dzięki czemu prędkość "malowania" wzrastała. W
AutoCAD'zie nie mogę się doszukać. Narysowanie 100 kresek trwa prawie
3 sekundy. Generalnie kod jest taki:

100 x  aCADEntity := (fCAD as
ACADApplication).ActiveDocument.ModelSpace.AddLine(P1, P2);

Reasumując, chodzi mi o coś takiego, żeby wyłączyć wyświetlanie
rysowanych obiektów, a jak program skończy rysować to żeby to włączyć.
Mam nadzieje że coś takiego istnieje, ale nie mogę wpaść na żaden
keyword.

Z góry dziękuję za pomoc.
b
Re: OLE, prędkość działania
#52961
Author: PiotrB.
Date: Mon, 08 Jun 2009 06:53
17 lines
1510 bytes
Dnia 07-06-2009 o 22:16:44 b0bik <b0bik@poczta.onet.pl> napisał(a):

> Reasumując, chodzi mi o coś takiego, żeby wyłączyć wyświetlanie
> rysowanych obiektów, a jak program skończy rysować to żeby to włączyć.
> Mam nadzieje że coś takiego istnieje, ale nie mogę wpaść na żaden
> keyword.

Szukałem kiedyś czegoś takiego ale nic nie znalazłem
i obawiam się, że nawet nie chodzi o odświeżanie.
Spróbuj np. utworzyć blok i zamiast w ModelSpace rysować
w tym bloku. Blok nie jest wyświetlany bo jeszcze nie
jest wstawiony do rysunku, więc teoretycznie powinno to pomóc,
ale obawiam się, że niewiele.

Ale żeby 100 linii w 3 minuty to chyba przesadziłeś.

Pozdr. Piotr
Re: OLE, prędkość działania
#52962
Author: PiotrB.
Date: Mon, 08 Jun 2009 06:54
7 lines
1012 bytes
Dnia 08-06-2009 o 08:53:34 PiotrB. <ppqqTowytnij@towytnijop.pl> napisał(a):

> Ale żeby 100 linii w 3 minuty to chyba przesadziłeś.

sorry, sekundy, nie doczytałem.

Pozdr. Piotr
Re: OLE, prędkość działania
#52963
Author: b0bik
Date: Mon, 08 Jun 2009 19:08
22 lines
2125 bytes
On 8 Cze, 08:53, "PiotrB." <ppqqTowyt...@towytnijop.pl> wrote:
>
> Szukałem kiedyś czegoś takiego ale nic nie znalazłem
> i obawiam się, że nawet nie chodzi o odświeżanie.
> Spróbuj np. utworzyć blok i zamiast w ModelSpace rysować
> w tym bloku. Blok nie jest wyświetlany bo jeszcze nie
> jest wstawiony do rysunku, więc teoretycznie powinno to pomóc,
> ale obawiam się, że niewiele.
>
> Ale żeby 100 linii w 3 minuty to chyba przesadziłeś.
>
> Pozdr. Piotr

No to mnie zmartwiłeś. Podejrzewam, że mogło by to przyśpieszyć,
jakbym najpierw zbudował skrypt a potem go w całości odpalił, ale za
wszelką cenę chciałbym tego uniknąć. Korzystanie z wczesnego wiązania
jest wielce wygodne.


A może ktoś ma jeszcze jakieś pomysły ?

b
Re: OLE, prędkość działania
#52964
Author: AdamC
Date: Tue, 09 Jun 2009 09:55
9 lines
1179 bytes
Użytkownik "b0bik" <b0bik@poczta.onet.pl> napisał:


> A może ktoś ma jeszcze jakieś pomysły ?

REGENAUTO OFF

AdamC 
Re: OLE, prędkość działania
#52965
Author: b0bik
Date: Tue, 09 Jun 2009 18:19
15 lines
1899 bytes
On 9 Cze, 11:55, "AdamC" <adamc@@poczta.fm> wrote:
> Użytkownik "b0bik" <b0...@poczta.onet.pl> napisał:
>
> > A może ktoś ma jeszcze jakieś pomysły ?
>
> REGENAUTO OFF
>
> AdamC

Niestety kompletnie bez zmian. Pamiętam że w MicroStation jest kilka
takich funkcji, które kompletnie "wyłączają rysunek". Jak się rysuje
coś przez ole, czy przez wpisanie to nic nie widać, dopiero jak się to
włączy. Jest coś takiego w ACadzie ?

b
Re: OLE, prędkość działania
#52966
Author: b0bik
Date: Tue, 09 Jun 2009 18:47
14 lines
1855 bytes
No udało mi się zejść z 3000 ms do 500 ms a więc 6-krotnie szybciej!

Sposób (;  :

(fCAD as ACADApplication).Visible := False;
rysowanie
(fCAD as ACADApplication).Visible := True;

Nie jest to efektowne ale efektywne. Wynik nie taki jak w starym
poczciwym MSSE ale jakiś jest. No nic szukam dalej, i nadal proszę o
pomysły.

Pozdrawiam
b0bik
Re: OLE, prędkość działania
#52967
Author: leh
Date: Wed, 10 Jun 2009 20:27
6 lines
1202 bytes
Jeśli masz możliwość to zamiast kilku linii rysuj polilinie, może trochę
przyspieszy.

Pozdrawiam
leh
www.leh.cad.pl
Re: OLE, prędkość działania
#52968
Author: b0bik
Date: Thu, 11 Jun 2009 07:21
19 lines
2285 bytes
On 10 Cze, 22:27, " leh" <leh.cad.WYT...@gazeta.pl> wrote:
> Jeśli masz możliwość to zamiast kilku linii rysuj polilinie, może trochę
> przyspieszy.
>
> Pozdrawiam
> lehwww.leh.cad.pl

Pewnie tak, szczególnie że to będzie jedno wywołanie zamiast 100. Nie
mniej jednak to wszystko są testy, i akurat w testowym przypadku
rysowałem linie wg schematu:

| | | | | | | | i tak aż do 100. Mi nie chodzi jak narysować 100
kresek szybciej, tylko jak ogólnie zmusić cały ten mechanizm do
szybszego działania. Ale dzięki za chęci.

A tak BTW widzę że na tej grupie cisza jak makiem zasiał, gdzie
mógłbym (jakieś forum, inna grupa) rzucić to pytanko jeszcze raz ?

b
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads