[VBA|.SetBulge] Problem z kreskowaniem zamkniętej polilinii


e_CAD

Rekomendowane odpowiedzi

Już od wersji ZWCAD 2017-2018 istnieje problem z kreskowaniem zamkniętych obrysów polilinii (ale raczej tylko tych z nadaną wypukłością) z poziomu języka VBA.

Jest to błąd występujący losowo i trudno jest go zasymulować, znaleźć jakiś przykład.

W czystym pliku DWG pierwsze wstawianie/rysowanie z VBA obiektów (zamknięta Polilinia + wypukłość) rysuje się bez problemu.
Jednak gdy w rysunku pojawią się z czasem inne obiekty, gdy coś narysujemy (nie jestem w stanie określić co i kiedy ponieważ podczas testowania nie natrafiliśmy na jakąś powtarzalną regułę) to po czasie ten sam obiekt rysuje się już bez kreskowania.
Zauważyliśmy jeszcze, że inne obiekty rysowane bez nadanej wypukłości polilinii (kąty ostre, proste) z identycznym kreskowaniem, rysują się nadal prawidłowo.

Polilinia.SetBulge

 

Edytowane przez e_CAD
Odnośnik do komentarza
Udostępnij na innych stronach

Napotkałem taki problem ostatnio w wersji 2018 SP1 (we wcześniejszych nie) ale kiedy wyciagnąłem z aplikacji samą funkcję rysującą polilinie i kreskowanie narysowało poprawnie. Przyglądam się temu uważnie, ale również nie potrafię znaleźć w tym zasady. Gdyby udało się Panu przygotować taki przykład, na którym będzie można powtórzyć problem bardzo proszę o przesłanie.

Odnośnik do komentarza
Udostępnij na innych stronach

Miałem problem w C# z kreskowaniem profili stalowych. Po zakreskowaniu profilu gdy tak wstawiony profil chciałem przesunąć, skopiować, czy usunąć polilinię, która była loopem dla hatcha to hatch się rozkraczał w dziwny "kwantowy" sposób. Pomogło tworzenie hatcha przed dodaniem polilinii do blocktabelrekord i do transakcji. Ważne aby obiekt hatch dodać do blocktabelrecord i transakcji przez polilinią. Problem pojawił się w 2018 SP1. Wcześniej nie występował. Można porównać wersję PI 1.28 i PI 2018. Jeśli w wersji PI 1.28 wstawimy profile stalowe pod 2018 SP1 to hatch będzie rozwalony. Przy czym wcześniej tego nie było.

Edytowane przez Parikon
Odnośnik do komentarza
Udostępnij na innych stronach

Niestety bardzo trudno będzie ustalić przyczynę błędu i przygotować przykład (pomimo szczerych chęci), ponieważ ten sam/identyczny kod programu powoduje że raz kreskowanie się rysuje a raz nie. Ale jeżeli już się narysuje to narysuje się prawidłowo, tak jak powinno być. Kreskowanie samo w sobie nie jest błędne, tylko czasami go po prostu nie ma.

Wykonując przyjętą do testów dowolną sekwencje poleceń (np. rysowania jakiś elementów w rysunku jeden po drugim i na końcu element z kreskowaniem) w identycznej kolejności, w nowo otwieranym DWG i nowej sesji ZWCAD, raz kreskowanie się rysuje, a raz nie (przypominam że wykonujemy dokładnie te same polecania w tej samej kolejności).

Jeżeli kreskowanie przestanie się już rysować w danym rysunku DWG (dla polilinii z wypukłościami) to nawet przy próbach naprawiania rysunku, usuwania obiektów, nie udało nam się podczas testów jego wskrzesić. Dopiero otworzenie nowego DWG (nawet w tej samej sesji ZWCAD), znów pozwala na jego rysowanie.

W związku z tym można założyć że kod programu jest prawidłowy. Ponadto ten sam kod odpowiedzialny za rysowanie kreskowania, prawidłowo działa w innych CADach, oraz poprzednim ZWCAD.

Odnośnik do komentarza
Udostępnij na innych stronach

Tak jak pisałem powyżej po zainstalowaniu SP1 do Zw2018 moje moduły rysujące profile (czyli polilinie)  zaczęły się dziwnie zachowywać jeśli chodzi o ich hatchowanie. Ostatecznie nie zgłaszałem tego, gdyż zmieniłem kod tak jak wcześniej opisałem. Wcześniej hatch był generowany tak jak jest to w przykładach Autodesk. Aktualnie najpierw dodaje obiekt hatch a potem polilinie do rekordów tabeli blocków i problem zniknął.

 

Odnośnik do komentarza
Udostępnij na innych stronach

Celem nie jest szukanie obejść i drogi na skróty, tylko znalezienie przyczyny w ZWCAD i naprawienia jej. To zaowocuje ulepszeniem ZWCAD. Tym bardziej, że wiemy iż taka poprawność jest możliwa i była w poprzednich wersjach ZWCAD.

Kod programu generujący kreskowane obiekty nie jest wadliwy (dlatego nie widzę potrzeby zmiany) bo jak napisałem już powyżej on działa dobrze nawet w ZWCAD 2017/2018.

Problem natomiast polega na losowości, czyli na tym że ZWCAD 2017/2018 raz wykonuje dobrze program (prawidłowo kreskuje) a innym razem w ogóle nie kreskuje (jakby nie wstawia obiektu HATCH).

Odnośnik do komentarza
Udostępnij na innych stronach

32 minuty temu, e_CAD napisał:

Celem nie jest szukanie obejść i drogi na skróty, tylko znalezienie przyczyny w ZWCAD i naprawienia jej. To zaowocuje ulepszeniem ZWCAD. Tym bardziej, że wiemy iż taka poprawność jest możliwa i była w poprzednich wersjach ZWCAD.

Kod programu generujący kreskowane obiekty nie jest wadliwy (dlatego nie widzę potrzeby zmiany) bo jak napisałem już powyżej on działa dobrze nawet w ZWCAD 2017/2018.

Problem natomiast polega na losowości, czyli na tym że ZWCAD 2017/2018 raz wykonuje dobrze program (prawidłowo kreskuje) a innym razem w ogóle nie kreskuje (jakby nie wstawia obiektu HATCH).

Moim celem było wskazanie, że coś jest na rzeczy - że coś się zmieniło na niekorzyść pomiędzy 2018 a 2018SP. Tylko tyle :hi:

Odnośnik do komentarza
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie