Assgarth Posted June 30, 2011 Report Share Posted June 30, 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 Quote Link to comment Share on other sites More sharing options...
kruszynski Posted July 1, 2011 Report Share Posted July 1, 2011 Sprawdziłem to na tej samej wersji i działa poprawnie: zwraca selectionset. Może jakiś błąd literowy w kodzie się pojawił? Quote Link to comment Share on other sites More sharing options...
Assgarth Posted July 1, 2011 Author Report Share Posted July 1, 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 Quote Link to comment Share on other sites More sharing options...
kruszynski Posted July 1, 2011 Report Share Posted July 1, 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. Quote Link to comment Share on other sites More sharing options...
Assgarth Posted July 1, 2011 Author Report Share Posted July 1, 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 Quote Link to comment Share on other sites More sharing options...
Assgarth Posted July 1, 2011 Author Report Share Posted July 1, 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 Quote Link to comment Share on other sites More sharing options...
Assgarth Posted July 1, 2011 Author Report Share Posted July 1, 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 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.