Rekomendowane odpowiedzi

Opublikowano

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

Opublikowano (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 przez kojacek
Opublikowano

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

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ą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie