Здравствуйте, не подскажите, есть ли в природе такой лисп, который позволит проставлять размеры между двумя полилиниями ( как на картинке ) в автоматическом или полуавтоматическом режиме, с задаванием шага, или ручным выбором места размеривания?
Проставляет размеры от вершин одной из полилиний перпендикулярно к другой: Код: (vl-load-com) (defun c:DimPl2Pl ( / en1 en2 vrx pt) (if (and (setq en1 (car (entsel "\nSelect 1st polyline (dim from): "))) (= "LWPOLYLINE" (cdr (assoc 0 (entget en1)))) (setq en2 (car (entsel "\nSelect 2nd polyline (dim to): "))) (= "LWPOLYLINE" (cdr (assoc 0 (entget en2)))) (setq vrx (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= (car x) 10)) (entget en1)))) ) (foreach e vrx (if (setq pt (vlax-curve-getClosestPointTo en2 e)) (command "_.DIMALIGNED" "_none" (trans e 0 1) "_none" (trans pt 0 1) "_none" "@"))) (princ "\nWrong selection. Two LWPolylines are required.") ) (princ) )
Здравствуйте . нашел лисп в интернете от цифрового текста отнимает или прибавляет нужную нам высоту но при этом округляет ее до сантиметра. как для земляных работ вообще отлично . но мне нужно 3 знака после запятой . помогите пожалуйста исправить код что бы ставило 3 знака . заранее большое спасибо
spoki424, в меню гео, в модуле Геодезия уже есть лисп, который вам подойдёт. Вызывается командой otmetka, позволяет выбрать нужное количество объектов, выбрать какую часть числа менять (до запятой, после запятой или целиком), а также предлагает указать нужное количество цифр после запятой.
Загрузи файл в текстовый редактор Блокнот Найди строку (если считать строки сверху вниз - 54 строка) (mapcar '(lambda(x)(strcat(r tos x 2 2) "\\P")) res)) Замени 2 на 3, должно быть так (mapcar '(lambda(x)(strcat(r tos x 2 3) "\\P")) res)) Сохрани файл. 0 - округляет до метров 1 - до дециметров 2 - до сантиметров 3 - до миллиметров
так же в меню гео, в модуле калькуляторы уже есть лисп ГЕОКАЛЬКУЛЯТОР он прибавляет/отнимает/умножает/делит величину текста (не Мтекст!!!) и исправляет количество знаков после запятой