Dostosowanie lispu do ZWCAD+ (Bląd DXF)


Recommended Posts

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

Link to comment
Share on other sites

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 by kojacek
Link to comment
Share on other sites

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ł ;) 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...