Recommended Posts

Posted

Dzień dobry, 

zwracam się z uprzejmą prośbą o pomoc. Programowanie nie jest moją mocną stroną, a zwłaszcza składnia do której nawiążę.

Przygotowuję prosty LISP do wykorzystania w oprogramowaniu Autodesku. Jego główne zadania to pobranie wartości Z wskazanego przez kliknięcie punktu oraz wstawienie punktu i etykiety z wartością wysokości w postaci tekstu.

Docelowy wygląd:

image.png.91f0b83efe1f16bbd4238b099cb9244f.png

Mój problem polega na niewiedzy,  jaki sposób poprawić ten dość banalny kod który załączam, aby:

1. Tekst wstawiał się w wysokości 0.3m (nie ma konieczności definicji przez użytkownika w programie)?

2. Położenie tekstu (Position Z) odpowiadała wartości Z wskazanego punktu? 

(defun c:lh (/  p x y ptcoord textloc)
(while
    (setq p (getpoint "\nPick Point: "))
    (command "_POINT" p)
    (setq z (rtos (caddr p)))
    (setq ptcoord (strcat z))
    (setq textloc (getpoint "\nPick Label Location: "))
    (command "_TEXT" textloc p "" ptcoord "")
  )
)

Z góry dziękuję za jakiekolwiek wskazówki! 

Posted

Może tak:

(defun c:lh (/  p x y ptcoord textloc)
(while
    (setq p (getpoint "\nPick Point: "))
    (command "_POINT" p)
    (setq z (rtos (caddr p)))
    (setq ptcoord (strcat z))
    (setq textloc (getpoint "\nPick Label Location: "))
	
    (command "_TEXT"  (list (car textloc) (cadr textloc) (caddr p) ) 0.3 0 ptcoord  ""	)
  )
)
Posted

Tak, dokładnie o to mi chodziło, dzięki wielkie za pomoc!

W razie potrzeby, konieczne jest ewentualne dostosowanie kąta obrotu tekstu (zależnie od wersji AutoCADa). W moim przypadku delikatna modyfikacja kodu przyniosła oczekiwany efekt.

(defun c:lh (/  p x y ptcoord textloc)
(while
    (setq p (getpoint "\nPick Point: "))
    (command "_POINT" p)
    (setq z (rtos (caddr p)))
    (setq textloc (getpoint "\nPick Label Location: "))
    (command "_TEXT"  (list (car textloc) (cadr textloc) (caddr p) ) 0.3 90 ptcoord  ""	)
  )
)

 

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