-
Postów
281 -
Dołączył
-
Ostatnia wizyta
-
Wygrane w rankingu
44
Ostatnia wygrana kojacek w dniu 30 Stycznia
Użytkownicy przyznają kojacek punkty reputacji!
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 (2/6)
77
Reputacja
-
Szukam kodu Lisp autorstwa Kojacek o nazwie "Linie łamane"
kojacek odpowiedział(a) na zonikpl temat w Wsparcie programistyczne LISP i VisualLISP
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. -
zonikpl zareagował(a) na odpowiedź w temacie:
Szukam kodu Lisp autorstwa Kojacek o nazwie "Linie łamane"
-
Szukam kodu Lisp autorstwa Kojacek o nazwie "Linie łamane"
kojacek odpowiedział(a) na zonikpl temat w Wsparcie programistyczne LISP i VisualLISP
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. -
Szukam kodu Lisp autorstwa Kojacek o nazwie "Linie łamane"
kojacek odpowiedział(a) na zonikpl temat w Wsparcie programistyczne LISP i VisualLISP
-
Szukam kodu Lisp autorstwa Kojacek o nazwie "Linie łamane"
kojacek odpowiedział(a) na zonikpl temat w Wsparcie programistyczne LISP i VisualLISP
https://kojacek.wordpress.com/2015/11/04/cadpl-pack/ -
Szukam kodu Lisp autorstwa Kojacek o nazwie "Linie łamane"
kojacek odpowiedział(a) na zonikpl temat w Wsparcie programistyczne LISP i VisualLISP
-
Szukam kodu Lisp autorstwa Kojacek o nazwie "Linie łamane"
kojacek odpowiedział(a) na zonikpl temat w Wsparcie programistyczne LISP i VisualLISP
Spróbuj tego tak jak na obrazie powyżej, zamień wyrażenie - (quote (eval %1)) na ('eval %1). To samo dla %2. -
dmatusz3 zareagował(a) na odpowiedź w temacie:
Szukam kodu Lisp autorstwa Kojacek o nazwie "Linie łamane"
-
Szukam kodu Lisp autorstwa Kojacek o nazwie "Linie łamane"
kojacek odpowiedział(a) na zonikpl temat w Wsparcie programistyczne LISP i VisualLISP
voila: https://kojacek.wordpress.com/2026/04/08/linie-lamane-2-czyli-jak-to-dziala/ -
kojacek obserwuje zawartość Długość polilinii , Szukam kodu Lisp autorstwa Kojacek o nazwie "Linie łamane" , Pobranie cech (właściwości) z obiektu i 1 inny
-
Szukam kodu Lisp autorstwa Kojacek o nazwie "Linie łamane"
kojacek odpowiedział(a) na zonikpl temat w Wsparcie programistyczne LISP i VisualLISP
Myślę że coś (chyba) mam... 😉 potrzebuję jednak trochę czasu, bo nie mam tego przy sobie. -
Pobranie cech (właściwości) z obiektu
kojacek odpowiedział(a) na PiotrI temat w Wsparcie programistyczne LISP i VisualLISP
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. -
snooper83 zareagował(a) na odpowiedź w temacie:
Blok ze statycznym punktem zaczepienia
-
Blok ze statycznym punktem zaczepienia
kojacek odpowiedział(a) na snooper83 temat w ZWCAD Standard i Professional
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. -
Długość polilinii
kojacek odpowiedział(a) na padon temat w Wsparcie programistyczne LISP i VisualLISP
-
Długość polilinii
kojacek odpowiedział(a) na padon temat w Wsparcie programistyczne LISP i VisualLISP
Voila! Musisz mieć wczytany CADPL-Pack. I ten kod: ; -------------------------------------------------------------------- ; ; MLELEN by kojacek 2026 ; -------------------------------------------------------------------- ; (defun C:MLELEN ()(jk:ACX_MLePlineLen)(princ)) ; -------------------------------------------------------------------- ; (defun jk:ACX_MLePlineLen (/ %e %o %s %f %l %m %a %v) (if (and (setq %s (car (setq %e (entsel "\nWskaz polilinie:")))) (= "LWPOLYLINE" (cdr (assoc 0 (entget %s)))) ) (if (setq %e (getpoint (setq %f (cadr %e)) "\nPunkt opisu:")) (progn (setq %l (strcat "%<\\AcObjProp Object(%<\\_ObjId " (GetObjectID (vlax-ename->vla-object %s)(cd:ACX_ADoc)) ">%).Length \\f \"%lu2%pr2\">%" ) %a (angle %f %e) ) (cd:SYS_UndoBegin) (setq %m (jk:ACX_AddMleader (cd:ACX_ASpace) %l %f %e 1) ) (vla-SetDogLegDirection %m 0 (vlax-3D-point (list (if (<= (car %f)(car %e)) 1 -1) 0 0) ) ) (vla-update %m) (vla-Regen (cd:ACX_ADoc) acActiveViewport) (cd:SYS_UndoEnd) ) ) ) ) ; -------------------------------------------------------------------- ; (defun jk:ACX_AddMleader (Space txt Ps Pe Dir / v vo) (if (= (length Ps) 2)(setq Ps (append Ps (list 0.0)))) (if (= (length Pe) 2)(setq Pe (append Pe (list 0.0)))) (setq v (vlax-make-variant (vlax-safearray-fill (vlax-make-safearray vlax-vbdouble '(0 . 5)) (apply 'append (list Ps Pe)) ) ) ) (setq vo (vla-addMleader Space v 0)) (if txt (vla-put-TextString vo txt)) (vla-SetDogLegDirection vo 0 (vlax-3D-point (list Dir 0.0 0.0 ) ) ) (vla-SetLeaderLineVertices vo 0 v) vo ) ; -------------------------------------------------------------------- ; (defun GetObjectID (obj doc) ;; Lee Mac (if (eq "64" (strcase (getenv "PROCESSOR_ARCHITECTURE"))) (vlax-invoke-method (vla-get-Utility doc) 'GetObjectIdString obj :vlax-false) (itoa (vla-get-Objectid obj)) ) ) ; -------------------------------------------------------------------- ; A wygląda to tak: -
Długość polilinii
kojacek odpowiedział(a) na padon temat w Wsparcie programistyczne LISP i VisualLISP
https://kojacek.wordpress.com/2018/01/23/etykietowanie-polilinii/ -
dmatusz3 zareagował(a) na odpowiedź w temacie:
Czy jest jakaś funkcja lub lisp który pozwoli zestawić listę layoutów?
-
Można szybko napisać krótkiego Lisp-a. Na przykład wykorzystując bibliotekę CADPL-Pack-v1.lsp (https://kojacek.wordpress.com/2015/11/04/cadpl-pack/). Funkcją cd:BLK_GetAtts zbierzesz wartości atrybutów bloku (dla każdego layout-u), następnie w dowolny sposób przeformatować listę tak jak potrzeba, i w końcu funkcją cd:SYS_WriteFile możesz zapisać wynik w pliku tekstowym. Zwykle takie rozwiązania są bardziej indywidulane (zależą od nazwy bloków, tagów atrybutów, kolejności wartości itp.) niż uniwersalne.