Assgarth Opublikowano 30 Czerwca 2011 Zgłoś Opublikowano 30 Czerwca 2011 Istnieje w ZwCAD odpowiednik funkcji AutoCAD'owego Visual Lispa "vla-explode"? Polecenie: (setq a (vlax-ename->vla-object (car(entsel)))) Wybierz obiekty: # Polecenie: (vla-explode a) błąd: pusta funkcja pozdrawiam
kruszynski Opublikowano 1 Lipca 2011 Zgłoś Opublikowano 1 Lipca 2011 Sprawdziłem to na tej samej wersji i działa poprawnie: zwraca selectionset. Może jakiś błąd literowy w kodzie się pojawił?
Assgarth Opublikowano 1 Lipca 2011 Autor Zgłoś Opublikowano 1 Lipca 2011 Otwieram nowy rysunek, rysuję jedną polilinię i wprowadzam polecenie: (setq vla_object (vlax-ename->vla-object (entlast))) a następnie: (vla-explode vla_object) i ZwCAD zwraca: błąd: pusta funkcja (VLA-EXPLODE VLA_OBJECT) nie ma mowy o błędzie literowym... Albo coś jeszcze jest potrzebne do zdefiniowania, albo jakiś dodatkowy parametr, lecz w Pomocy dla programisty ZwCADa, nie ma w ogóle opisanej funkcji "vla-explode" więc nie wiem gdzie tego szukać... Może jest inna funkcja w Visual Lisp, która rozbija obiekty?... Powyższy zapis kodu w AutoCAD, działa bez zarzutu: (setq vla_object (vlax-ename->vla-object (entlast))) (vla-explode vla_object) i AutoCAD zwraca: # pozdrawiam
kruszynski Opublikowano 1 Lipca 2011 Zgłoś Opublikowano 1 Lipca 2011 W ZWCAD to działa trochę inaczej, czyli zwraca zbiór wskazań obiektów po rozbiciu, np : Może to jest kwestia elementu, który Pan rozbija. Ja sprawdzałem na bloku i polilinii.
Assgarth Opublikowano 1 Lipca 2011 Autor Zgłoś Opublikowano 1 Lipca 2011 No może zwracać cokolwiek, byle nie błąd :) W załączniku Polilinia, którą chcę rozbić według poleceń, które podałem wcześniej. test.dwg
Assgarth Opublikowano 1 Lipca 2011 Autor Zgłoś Opublikowano 1 Lipca 2011 W przypadku bloku jest podobnie: Polecenie: (setq vla_object (vlax-ename->vla-object (entlast))) # Polecenie: (vla-explode vla_object) błąd: pusta funkcja (VLA-EXPLODE VLA_OBJECT) Zmiana wartości zmiennej systemowej "EXPLMODE" nie była konieczna, gdyż domyślnie ustawiona jest na "1". pozdrawiam
Assgarth Opublikowano 1 Lipca 2011 Autor Zgłoś Opublikowano 1 Lipca 2011 Okey, przeprowadziłem test z pełną gamą informacji, załadowaniem Visual Lisp itd. (vl-load-com) (setq acadobj (vlax-get-acad-object)) (setq actdoc (vla-get-ActiveDocument acadobj)) (setq vla_object (vlax-ename->vla-object (entlast))) (vla-explode vla_object) i dopiero wówczas ZwCAD zadziałał: Polecenie: (vl-load-com)(setq acadobj (vlax-get-acad-object))(setq actdoc (vla-get-ActiveDocument acadobj)) # Polecenie: (setq vla_object (vlax-ename->vla-object (entlast))) # Polecenie: (vla-explode vla_object) # Moja wina, że nie odwoływałem się do ActiveDocument, lecz to z przyzwyczajenia z AutoCAD gdzie po prostu i bez tego można podstawowe testy wykonać... pozdrawiam
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się