Тема: LISP. Обозначение выносного элемента
;|==================================================== Обозначение выносного элемента Программа Дениса Флюстикова "Elem_Den" Макрос для кнопки: ^C^C^P(load "Elem_Den");Elem_Den Замечания и предложения по адресу fd-@mail.ru ****************************************************** Если для редактирования размеров используете "DimDen", то в "DimDen.lsp" замените строчку: (setq kol_c (vl-string-search "\\H" text)) на: (setq kol_c (vl-string-search "\\H." text)) ====================================================|; (defun c:Elem_Den (/ aa aa1 aa2 layer CLAYER DIMTOFL DIMCEN DIMTOH DIMTMOVE OSMODE) (setq layer "Размер" ; Слой, если активный то nil aa1 "А" CLAYER (getvar "CLAYER") DIMTOFL (getvar "DIMTOFL") DIMCEN (getvar "DIMCEN") DIMTOH (getvar "DIMTOH") DIMTMOVE (getvar "DIMTMOVE") OSMODE (getvar "OSMODE")) (initget 128) (setq aa (getpoint "\nЦентр выносного элемента [А/Б/В/Г/Д/Е/Ж/З/И/К/Л/М/Н]<А>:")) (if (null aa)(setq aa aa1)) (if (= (type aa) 'STR) (setq aa1 aa aa (getpoint (strcat "\nЦентр выносного элемента " aa1 ":"))) ) (setvar "CMDECHO" 0) (vl-cmdf "_.undo" "_g") (if (= (type aa) 'LIST)(progn (if layer (if (tblsearch "Layer" layer) (vl-cmdf "_.'layer" "_s" layer ""))) (princ (strcat "\nРадиус выносного элемента " aa1 ":")) (if (vl-cmdf "_.circle" aa pause)(progn (setq aa1 (strcat "\\H1.5x;" aa1) ; Высота обозначения отн. шрифта размерного стиля aa2 (entget (entlast)) aa (cdr (assoc 10 aa2)) aa2 (cdr (assoc 40 aa2)) aa2 (polar aa 0 aa2) aa2 (trans aa2 0 1)) (setvar "DIMBLK" "_None") (setvar "DIMTOFL" 0) (setvar "DIMCEN" 0) (setvar "DIMTOH" 1) (setvar "DIMTMOVE" 0) (setvar "OSMODE" 0) (princ "\nПоложение обозначения выносного элемента:") (if (vl-cmdf "_.dimradius" aa2 "_t" aa1 pause) (setq aa1 nil)) (setvar "DIMBLK" ".") (setvar "DIMTOFL" DIMTOFL) (setvar "DIMCEN" DIMCEN) (setvar "DIMTOH" DIMTOH) (setvar "DIMTMOVE" DIMTMOVE) (setvar "OSMODE" OSMODE) )))) (setvar "CLAYER" CLAYER) (vl-cmdf "_.undo" "_e") (setvar "CMDECHO" 1) (if aa1 (vl-cmdf "_.undo" 1)) (princ) )