Есть лисп DIMRR, проставляющий в знаменателе размерной линии новое значение размера, равное номиналу + случайное значение в заданном диапазоне (работает как с массовым предварительным выбором, так и указанием поштучно). Может кто-нибудь переделать его так, чтобы значение в знаменателе проставлялось в исходном размере, а не создавался новый с наложением на оригинал? Лисп DIMRR (Наведите курсор, чтобы раскрыть содержимое) Лисп DIMRR (раскрыть) Лисп DIMRR (свернуть) (defun c:DIMRR (/ *actdoc* selset item temp_text i To From +Sign Diff Num) (vl-load-com) (setq *actdoc* (vla-get-activedocument (vlax-get-acad-object))) (vla-startundomark *actdoc*) (initget 5) (setq To (getreal "Max величина разброса значений: ")) (setq From (- 0 To)) (setq +Sign (if (< From 0) "+" "" ) ) (setq Diff (- To From)) (setq selset (ssget "_:L" '((0 . "DIMENSION"))) i '-1) (while (and selset (setq item (ssname selset (setq i (1+ i)))) ) ;_ end of and (if (and (member '(100 . "AcDbAlignedDimension") (entget item)) (setq item (vlax-ename->vla-object item)) (member (vla-get-textoverride item) '("" "<>")) ) (progn (setq dmob (vla-copy item)) (vlax-put-property dmob "textcolor" 0) (setq dimtext (rtos (vla-get-measurement dmob) (vla-get-UnitsFormat dmob) (vla-get-PrimaryUnitsPrecision dmob))) (setq dimtext (atof dimtext)) (setq Num (- To (* Diff (vk_RandNum)))) (setq dimtext (+ dimtext Num)) (setq dimtext (rtos dimtext (vla-get-UnitsFormat dmob) (vla-get-PrimaryUnitsPrecision dmob))) (if (/= (vla-get-DecimalSeparator dmob) ".") (setq dimtext (vl-string-subst (vla-get-DecimalSeparator dmob) "." dimtext) ) ) (vla-put-TextOverride dmob (strcat "<>\\X" dimtext)) (entmod (subst (cons 8 "0") (assoc 8 (setq item (entget(vlax-vla-object->ename dmob)))) item) ) ) ;_ end of progn ) ;_ end of if ) ;_ end of while (vla-endundomark *actdoc*) (princ) ) ;_ end of defun (defun vk_RandNum (/ modulus multiplier increment random) (if (not *seed*) (setq *seed* (getvar "DATE")) ) (setq modulus 65536 multiplier 25173 increment 13849 *seed* (rem (+ (* multiplier *seed*) increment) modulus) random (/ *seed* modulus) ) )
Пользуются привязками, но не попадают часто, не могу их насиловать, ругаться смысла нет, старость. Только уход на пенсию им поможет))
А я обычно слой (фактические размеры), который создает DIMRR выделяю (выбрать аналог, либо быстрый выбор), затем копирую и сразу удаляю, скопированное вставляю с исходными координатами в новый чертеж, где все размеры взрываю и так же выбором аналога копирую только текст, который вставляю с исходными координатами в основной чертеж. Ну еще сразу подкрашиваю текст в красный цвет.
Я удаляю оригинал (копия у меня создается в виде числитель/знаменатель, т.е. проект/факт в слое "0" чтобы проще отделять оригиналы от копий для дальнейшего удаления), а копию перевожу в слой с размерами. Вот этих-то лишних для меня операций (удаление оригинала и перевод копии в другой слой) я и пытаюсь избежать.
Здравствуйте, подскажите пожалуйста, как сделать в автокаде сжатие МТекста не заходя в каждый текст. Т.е. имею 100 кусков Мтекста и нужно парой кликов сделать сжатие до 0,7 например.
Подскажите, пожалуйста, как запустить из командной строки любой из .lsp-пов (для примера), и что прописать для запуска кнопкой C^C,,,,.
--- Сообщения объединены, 22 ноя 2017, Оригинальное время сообщения: 22 ноя 2017 --- Как запустить Конкретно этот .lsp
Что означает текст (Disp_AM_EditObjectData)? В этом файле меня интересует только одна строка (defun Disp_AM_EditObjectData( / tmp tmp1 )