kojacek

Użytkownik forum
  • Postów

    286
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    45

Ostatnia wygrana kojacek w dniu 20 Kwietnia

Użytkownicy przyznają kojacek punkty reputacji!

1 obserwujący

Profile Information

  • Gender
    Male

Ostatnie wizyty

Blok z ostatnimi odwiedzającymi dany profil jest wyłączony i nie jest wyświetlany użytkownikom.

Osiągnięcia kojacek

Nowicjusz

Nowicjusz (2/6)

80

Reputacja

  1. 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) )
  2. Zatem z czystym sumieniem mogę polecić (prawie 10 letnie) rozwiązanie (3 w jednym): https://kojacek.wordpress.com/2017/12/30/uproszczone-wyswietlanie-obiektow/
  3. To jest ustawienie zmiennej FILLMODE, czy osobny wynalazek?
  4. Ok. Blok jest w porządku. Niemniej podstawowym założeniem SLINE, było zredukowanie klikania do minimum. Wywołanie polecenia (1) opcja (2) wskazanie (3) dwóch punktów... W realnym świecie (swego czasu) zastosowanie w "schematologii i rurologii":
  5. Nie jako blok dynamiczny - tylko wiązania parametryczne i nie w ZWCad tylko w AutoCAD. Wygląda to tak. Dwuelementowa polilinia z więzami geometrycznymi (prostopadłość i poziomość), oraz więzami wymiarowymi. Segment poziomy = różnica długości całkowitej (to wyrażenie - parametr użytkownika i jest do ustawienia, traktowane jako stała) i segmentu pionowego. Jego zmienna zadana długość, powoduje zmianę długości segmentu poziomego, zgodnie z wyrażeniem. Poniżej działanie tegoż:
  6. Podsumowując - w ZwCAD 2026 PL wyrażenie (quote (eval SYM)) nie działa, ale ('eval SYM) jest ok. Czy tylko w tej wersji, czy w innych też? W AutoCAD jest ok - przynajmniej nie spotkałem się z tym problemem nawet w starych wersjach. To że quote w tym miejscu nie działa, jest dziwne, bowiem wydaje się że ' (apostrof) jest tylko skrótem od (czy do) quote, więc interpreter LISP-a w rzeczywistości wykorzystuje funkcję quote.
  7. Jeżeli nie wprowadzałeś jakichś "ulepszeń" program powinien działać prawidłowo. Przetestuj w linii poleceń wywołania funkcji: (jk:SLN-GetKey) wybierając dostępne opcje. Wybrane słowo kluczowe (także każde ostatnie jako domyślne wybrane enterem) przypisywane jest do zmiennej globalnej o nazwie *SLN*. Jej wartość determinuje tryb rysowania.
  8. https://kojacek.wordpress.com/2015/11/04/cadpl-pack/
  9. Spróbuj tego tak jak na obrazie powyżej, zamień wyrażenie - (quote (eval %1)) na ('eval %1). To samo dla %2.
  10. voila: https://kojacek.wordpress.com/2026/04/08/linie-lamane-2-czyli-jak-to-dziala/
  11. Myślę że coś (chyba) mam... 😉 potrzebuję jednak trochę czasu, bo nie mam tego przy sobie.
  12. Ja jak zwykle polecam korzystanie z CADPL-Pack'a (https://kojacek.wordpress.com/2015/11/04/cadpl-pack/) - i z tamtąd funkcję: cd:ACX_GetProp. Przykładowe wywołanie: (cd:ACX_GetProp (entlast) '("LineType" "Color" "Layer" "Bla-bla")) Funkcja zwraca listę par kropkowych z dowolnymi własciwościami. Funkcja jest przyjazna, bo dla właściwości, których obiekt nie ma (lub błędnych nazw właściwości (przykładowe "Bla-bla")) nadal działa. Zwróci dla powyższego wywołania: (("LineType" . "ByLayer") ("Color" . 3) ("Layer" . "0") ("Bla" . :vlax-null)) Pozwala to zastosować na przykład jedną taką samą listę pobierania właściwości dla wielu obiektów.
  13. Blok dynamiczny z parametrem rozciągania biegunowego. W tym przypadku pewnie będzie trzeba mieć 2 bloki ("lewy i prawy"), dlatego też wielolinia odniesienia z blokiem i atrybutami jednak lepiej zda egzamin.