l33tleboy Posted November 15, 2015 Report Share Posted November 15, 2015 Witam serdecznie, jestem nowym użytkownikiem forum i zaznacza, iż nie znam się na programowaniu lisp. Chciałbym prosić Was o pomoc w dostosowaniu poniższego kodu źródłowego do środowiska ZWCAD + (posiadam wersję 2015). Dotychczas używałem autcada 2004 na którym lisp działał bez problemu. Po przesiadce na ZWCADa i wywołaniu komendy lispa wyskakuje błąd: ; błąd: no function definition: DXF Posiadam jeszcze kilka innych drobnych lispów , w których problem z błędem "DXF" się powtarza. Bardzo proszę o pomoc w tej sprawie. obraca blok lub tekst równolegle do wskazanej lini (defun c:blr (/ linia blok pt1 pt2 kat kat_stary pkt_wst obiekt) (setq linia nil) (while (= linia nil) (setq linia (car (entsel "\nWskaz linie: "))) (if (and (/= linia nil) (/= (dxf 0 (entget linia)) "LINE")) (setq linia nil) );if );while (setq blok (car (entsel "\nWskaz blok lub tekst: "))) (if blok (progn (setq obiekt (dxf 0 (entget blok))) (if (or (= obiekt "TEXT") (= obiekt "INSERT")) (progn (setq pt1 (reverse (cdr (reverse (cdr (assoc 10 (entget linia)))))) pt2 (reverse (cdr (reverse (cdr (assoc 11 (entget linia)))))) kat (angle pt1 pt2) kat_stary (cdr (assoc 50 (entget blok))) pkt_wst (reverse (cdr (reverse (cdr (assoc 10 (entget blok)))))) ) (if (AND (< (/ pi 2) kat) (> (+ (/ pi 2) pi) kat )) (setq kat (- kat pi)) ) (command "_rotate" blok "" pkt_wst "_r" (angtos kat_stary 0 4) (angtos kat 0 4)) ));if ));if blok );defun blr Quote Link to comment Share on other sites More sharing options...
kojacek Posted November 15, 2015 Report Share Posted November 15, 2015 (edited) Witam serdecznie, jestem nowym użytkownikiem forum i zaznacza, iż nie znam się na programowaniu lisp. Chciałbym prosić Was o pomoc w dostosowaniu poniższego kodu źródłowego do środowiska ZWCAD + (posiadam wersję 2015). Dotychczas używałem autcada 2004 na którym lisp działał bez problemu. Po przesiadce na ZWCADa i wywołaniu komendy lispa wyskakuje błąd: ; błąd: no function definition: DXF Posiadam jeszcze kilka innych drobnych lispów , w których problem z błędem "DXF" się powtarza. Bardzo proszę o pomoc w tej sprawie. obraca blok lub tekst równolegle do wskazanej lini (defun c:blr (/ linia blok pt1 pt2 kat kat_stary pkt_wst obiekt) (setq linia nil) (while (= linia nil) (setq linia (car (entsel "\nWskaz linie: "))) (if (and (/= linia nil) (/= (dxf 0 (entget linia)) "LINE")) (setq linia nil) );if );while (setq blok (car (entsel "\nWskaz blok lub tekst: "))) (if blok (progn (setq obiekt (dxf 0 (entget blok))) (if (or (= obiekt "TEXT") (= obiekt "INSERT")) (progn (setq pt1 (reverse (cdr (reverse (cdr (assoc 10 (entget linia)))))) pt2 (reverse (cdr (reverse (cdr (assoc 11 (entget linia)))))) kat (angle pt1 pt2) kat_stary (cdr (assoc 50 (entget blok))) pkt_wst (reverse (cdr (reverse (cdr (assoc 10 (entget blok)))))) ) (if (AND (< (/ pi 2) kat) (> (+ (/ pi 2) pi) kat )) (setq kat (- kat pi)) ) (command "_rotate" blok "" pkt_wst "_r" (angtos kat_stary 0 4) (angtos kat 0 4)) ));if ));if blok );defun blr Dodaj do pliku definicję funkcji DXF, której to właśnie brakuje: (defun DXF (code elist)(cdr (assoc code elist))) Na marginesie. Fajna jest zabawa kodami DXF obiektów, by na końcu użyć... command, A i dopiero teraz zauważyłem. Te reversy to po co są? Kto to pisał? Edited November 15, 2015 by kojacek Quote Link to comment Share on other sites More sharing options...
l33tleboy Posted November 15, 2015 Author Report Share Posted November 15, 2015 Dodaj do pliku definicję funkcji DXF, której to właśnie brakuje: (defun DXF (code elist)(cdr (assoc code elist))) Na marginesie. Fajna jest zabawa kodami DXF obiektów, by na końcu użyć... command, A i dopiero teraz zauważyłem. Te reversy to po co są? Kto to pisał? Dziękuję bardzo! Lispa dostałem od kolegi, ale on z pewnością tego nie napisał ;) Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.