l33tleboy Opublikowano 15 Listopada 2015 Zgłoś Udostępnij Opublikowano 15 Listopada 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 Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kojacek Opublikowano 15 Listopada 2015 Zgłoś Udostępnij Opublikowano 15 Listopada 2015 (edytowane) 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ł? Edytowane 15 Listopada 2015 przez kojacek Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
l33tleboy Opublikowano 15 Listopada 2015 Autor Zgłoś Udostępnij Opublikowano 15 Listopada 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ł ;) Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
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ą.