kojacek Opublikowano 5 godzin temu Zgłoś Opublikowano 5 godzin temu 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: oraz ZwCAD: 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) ) Cytuj
kruszynski Opublikowano 3 godziny temu Zgłoś Opublikowano 3 godziny temu Dzień dobry Dziękuję za zgłoszenie. Przekazałem temat do ZWSOFT. Cytuj
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ą.