ADN Club > AutoLisp / VisualLISP и DCL

команда в цикле "_.dimaligned"

(1/2) > >>

1958:
Возникла такая задача: назначить новый слой "Размер", указать на нужный стиль измерений в чертеже, назначить его текущим и произвести измерения. Лисп я набросал, а вот поместить команду "_.dimaligned" в цикл никак не получается. Ну и после завершения цикла необходимо вернуть старые значения: слой, размерный стиль. Кто может подсказать решение?

--- Код - Auto/Visual Lisp [Выбрать] ---(defun c:des (/) (vl-load-com) (setq oldlay     (getvar "clayer")       olddim     (getvar "dimstyle")       adoc       (vla-get-activedocument (vlax-get-acad-object))       lay        "Размер"       newdim     (cdr (assoc 3 (entget (car (entsel)))))       i          0 ) (vla-put-activedimstyle adoc (vla-item (vla-get-dimstyles adoc) newdim)) (vla-add (vla-get-layers adoc) lay) (vla-put-color (vla-Item (vla-get-Layers adoc) lay) 5) (setvar "clayer" lay) (vl-cmdf "_.dimaligned") (princ))

Александр Ривилис:
1958,
Организуй цикл с проверкой активной команды при помощи (getvar "CMDNAMES") и пока она равна "DIMALIGNED" запускай команду (vl-cmdf "\\")

1958:

--- Цитата: Александр Ривилис от 24-06-2022, 19:32:19 ---Организуй цикл с проверкой активной команды при помощи (getvar "CMDNAMES") и пока она равна "DIMALIGNED" запускай команду (vl-cmdf "\\")
--- Конец цитаты ---
Так?

--- Код - Auto/Visual Lisp [Выбрать] ---(defun c:des (/) (vl-load-com) (setq oldlay (getvar "clayer")       olddim (getvar "dimstyle")       adoc   (vla-get-activedocument (vlax-get-acad-object))       lay    "Размер"       newdim (cdr (assoc 3 (entget (car (entsel))))) ) (vla-put-activedimstyle adoc (vla-item (vla-get-dimstyles adoc) newdim)) (vla-add (vla-get-layers adoc) lay) (vla-put-color (vla-Item (vla-get-Layers adoc) lay) 5) (setvar "clayer" lay) (vl-cmdf "_.dimaligned") (while (= (getvar "CMDNAMES") "DIMALIGNED") (vl-cmdf "\\")) (princ))Видно, что-то не то я состряпал. Не работает.

Александр Ривилис:
Возможно вместо (vl-cmdf) следует использовать (command). Ну и включи cmdecho чтобы видеть сообщения в командной строке.

1958:
cmdecho включил. Заменил vl-cmdf на command. Цикл не работает. Вот сообщения в командной строке:
Команда: des
Выберите объект: _.dimaligned
Начало первой выносной линии или <выбрать объект>:
Начало второй выносной линии:
Создан неассоциативный размер.
Положение размерной линии или
[Мтекст/Текст/Угол]:
Размерный текст = 27.44
Команда:

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Перейти к полной версии