Assgarth Opublikowano 30 Czerwca 2011 Zgłoś Udostępnij 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 Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kruszynski Opublikowano 1 Lipca 2011 Zgłoś Udostępnij 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ł? Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Assgarth Opublikowano 1 Lipca 2011 Autor Zgłoś Udostępnij 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 Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kruszynski Opublikowano 1 Lipca 2011 Zgłoś Udostępnij 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. Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Assgarth Opublikowano 1 Lipca 2011 Autor Zgłoś Udostępnij 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 Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Assgarth Opublikowano 1 Lipca 2011 Autor Zgłoś Udostępnij 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 Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Assgarth Opublikowano 1 Lipca 2011 Autor Zgłoś Udostępnij 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 Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
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ą.