Cześć, tak wygląda objaśnienie do kodu jeśli to komuś pomoże. Po średniku jest krótkie wyjaśnienie dla każdej linijki.
Kod należy umieścić w pliku z rozszerzeniem .lsp w folderze (domyślnie support) i w AutoCAD załadować poleceniem __appload
To co po średniku w danej linijce jest ignorowane przez kompilator autolisp
(defun c:odwys (/ snap warsaktualna odch pwst dtd) ;definiowanie nowego polecenia oraz zmiennych lokalnych
(setq snap (getvar "osmode")) ;pobranie zmiennej systemowj kodu lokalizacji
(command "_OSNAP" "_NONE"); wyłączenie lokalizacji
(setq warsaktualna (getvar "clayer")); pobranie zmiennej systemowej nazwy warstwy aktaulanej
(command "_layer" "_m" "odchyłkawys" "");tworzenie nowej warstwy o nazwie "odchyłkawys"
(command "_layer" "_c" 3 "" "");przypisanie koloru nowostworzonej warstwie
(setq odch (getstring "Wprowadz odchyłke:"));pobranie tekstu od uzytkownika
(setq pwst (getpoint "Punkt wstawienia:")); pobranie wspolrzednych od uzytkownika
(setq dtd 1.0);podstawienie zmiennej wartosci 1.0
(command "_circle" pwst (* dtd 1.4));Rysowanie okregu wspolrzednych srodka pwst i promieniu (* dtd 1.4)
(command "_text" (polar pwst (+ pi (/ pi 7)) (* dtd 1.4)) dtd 0 odch);Tworzenie tekstu
;(polar pwst (+ pi (/ pi 7)) (* dtd 1.4)) - odpowiada za loklizacje tekstu (funkcja polar jest tu nie potrzebna)
;dtd - wysokosc tekstu
;0 - kat obrotu tekstu (układ matematyczny)
;odch - ciag znakow wstawiony do tesktu
(command "_layer" "_s" warsaktualna "");Ustawienie warstwy jako aktualnej ktora jest przypisna zmiennej systemowej
(setvar "osmode" snap);Ustawienie lokalizacji takiej jaka byla podstawiona zmiennej snap
)
RoBoCIK połączył wiadomości: 21 Marzec 2016, 18:20
Dorzucę swoją wersję alternatywną która "robi to samo". W moim mniemaniu jest trochę lepsza.
(defun c:odwys2 (/ odch pwst)
(while
(and
(setq odch (getstring t "\nWprowadz odchylke: "))
(setq pwst (getpoint "\Punkt wstawienia: "))
(entmakex (list (cons 0 "TEXT") (cons 10 (polar pwst 3.6 1.4)) (cons 40 1.0) (cons 1 odch)))
(entmakex (list (cons 0 "CIRCLE") (cons 10 pwst) (cons 40 1.4)))
)
)
(princ)
)
Pozdrawiam