Rekomendowane odpowiedzi

Opublikowano

Kiedy dostajesz informację że "twój lisp nie działa..." (a w setkach czy tysiącach testów/praktycznych zastosowań jest ok...) 
Opis przypadku: Lisp wybiera bloki, filtruje anonimowe i pobiera EffectiveName. Od kilkunastu lat jest wszystko ok, chyba że używasz ZwCAD-a. Bo w tym momecie następuje wyjebka. Dowolny (nie klasyczny) szyk AutoCAD-a, jest w rzeczywistości blokiem anonimowym, natomiast czy jest szykiem można sprawdzić funkcją getpropertyvalue (właściwość ClassName). Opisałem to wiele lat temu: https://kojacek.wordpress.com/2018/04/20/typy-odniesien/
W ZwCAD (jak się okazuje) sprawa wygląda nieco inaczej: szyk jest również blokiem anonimowym (ObjectName=AcDbBlockReference) ale... nie ma właściwości EffectiveName (i również kilku innych). Tutaj także nie użyjesz getpropertyvalue bo jej w ZwCAD (po prostu nie ma). Na marginsie - ten badany tutaj szyk jest obiektem VLA typu IZcadAssocArrayRect, który w autocadowskim modelu ActiveX nie występuje. Jest obiektem który chyba właściwie "udaje" szyk AutoCAD-a. Ciekaw jestem (nie mam możliwości sprawdzić) czy mechanizm dostępu do elementów szyku (który opisałm kiedyś: https://kojacek.wordpress.com/2024/05/26/dostep-do-elementow-szyku/) będzie działał. Poniżej zrzuty dla tego samego obiektu (handle="286") w tym samym rysunku sprawdzone w AutoCAD:

image.png.7b75af04aedb191d32993bd774f9b730.png

oraz ZwCAD:

image.png.053923cffd6fb84687f1572516359315.png

Czy ktoś używa innych klonów (IntelliCAD / BricsCAD / inne) i mógły sprawdzić jak to tam wygląda?

P.S.

Obejściem problemu który zastosowałem żeby LISP działał w ZwCAD jest:

(if 
    (vl-catch-all-error-p (vl-catch-all-apply 'vla-get-EffectiveName (list Obj)))
    (cdr (assoc 2 (entget (vlax-vla-object->ename Obj))))
    (vla-get-EffectiveName Obj)
  )

 

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