| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
19.12.2003, 13:30 | #1 | |
Как сделать (coммаnd "_.text"...
Инженер по системам безопасности
Рига
Регистрация: 23.11.2003
Сообщений: 1,099
|
||
Просмотров: 4441
|
|
||||
Kos прав - ENTMAKE удобнее, но если очень хочется то так:
Способ 1. Перед каждым выражением (command "_.TEXT" ...) определять высоту шрифта текущего стиля (cdr (assoc 40 (tblsearch "STYLE" (getvar "TEXTSTYLE")))) и если = 0 то прописывать высоту для команды текст Способ 2. Написать функцию в которую в качестве параметров передавать точку вставки , угол и содержимое строки. (defun myText (_po _h _ang _string _stylename) (if (= _stylename )(setq _stylename (getvar "TEXTSTYLE"))) (if (not (tblsearch "STYLE" _stylename)) (setq _stylename (getvar "TEXTSTYLE"))) (if (= (cdr (assoc 40 (tblsearch "STYLE" _stylename))) 0) (command "TEXT" "S" _stylename po _h (angtos _ang) _string) (command "TEXT" "S" _stylename po (angtos _ang) _string) ) ) |
||||
|
||||
Инженер по системам безопасности Регистрация: 23.11.2003
Рига
Сообщений: 1,099
|
Да смотрел. Единственное что там синтаксис для VBA. А как ссылаться на прстранство листа или модели? В первом аргументе, смещая остальные? Если не сложно киньте примерчик, что то я не совсем этот процесс понимаю.
|
|||
|
||||
сисадмин Регистрация: 26.08.2003
Самара
Сообщений: 1,022
|
"В первом аргументе, смещая остальные" - интересная формулировка В общем виде порядок следования аргументов будет именно таким для всех vla- методов.
Для создания текста (vla-addtext vla:modelspase "mystring" ....... и т.д. Однако (IMHO), не всегда удобно создавать примитивы таким образом, так как они всегда создаются в (плане) WCS и при работе в 3-мерке требуют последующего перемещения (и поворота) на место постоянной дислокации. |
|||
|
||||
Сообщений: n/a
|
Можно в начале вашей прогр. вызвать предлагаемую функцию, а в конце (и обязательно в обработчике ошибок) с помощью этой же функции возвращать старое значение.
;;; ********************************************* ;;; Функция устанавливает высоту текущего ;;; текстового стиля в зависимости от аргумента. ;;; Возвращает предыдущее значение ;;; ********************************************* (defun SetHightTextSt (h / EN NT OLDHIGHT) (if h (progn (setq NT (tblobjname "style" (getvar "textstyle")) En (entget NT)) (entmod (subst (cons 40 h) (setq OldHight (assoc 40 En)) En ) ) ) ) (cdr OldHight) ) |
|||