paq95 Opublikowano 3 Sierpnia 2020 Zgłoś Udostępnij Opublikowano 3 Sierpnia 2020 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: 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! Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kruszynski Opublikowano 4 Sierpnia 2020 Zgłoś Udostępnij Opublikowano 4 Sierpnia 2020 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 "" ) ) ) dmatusz3 1 Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
paq95 Opublikowano 4 Sierpnia 2020 Autor Zgłoś Udostępnij Opublikowano 4 Sierpnia 2020 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 "" ) ) ) 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ą.