| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как сделать (coммаnd "_.text"...

Как сделать (coммаnd "_.text"...

Ответ
Поиск в этой теме
Непрочитано 19.12.2003, 13:30 #1
Как сделать (coммаnd "_.text"...
{Smirnoff}
 
Инженер по системам безопасности
 
Рига
Регистрация: 23.11.2003
Сообщений: 1,099

Подскажите как сделать (command "_.text" ... чтобы работало с текстовыми стилями с 0 и установленным размером шрифта. Ведь с фиксированным размером, установка высоты шрифта из командной строки "уходит". Что то не могу эту проблемму сходу решить.
Просмотров: 4426
 
Непрочитано 19.12.2003, 14:00
#2
kos

LISP-программист
 
Регистрация: 25.08.2003
Тутэйшы
Сообщений: 238


Не пользуй (command "_text" ...), гораздо надежнее (entmake) и (vla-add-text).
__________________
Там все есть для счастья - меня там только нет.
Так это значит, что я там - буду!
kos вне форума  
 
Непрочитано 19.12.2003, 15:44
#3
Arkady

AutoCad Development and Support
 
Регистрация: 21.08.2003
Israel
Сообщений: 183
Отправить сообщение для Arkady с помощью Skype™


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)
)
)
Arkady вне форума  
 
Автор темы   Непрочитано 19.12.2003, 15:58
#4
{Smirnoff}

Инженер по системам безопасности
 
Регистрация: 23.11.2003
Рига
Сообщений: 1,099


Спасибо. Про ENTMAKE, как то не подумал совсем. Кстати где найти, полный список аргументов для VLA-ADD-....?
{Smirnoff} вне форума  
 
Непрочитано 19.12.2003, 16:06
#5
vk

сисадмин
 
Регистрация: 26.08.2003
Самара
Сообщений: 1,022
<phrase 1=


для VLA-ADD-....?

В хелпе, в разделе "ActiveX and VBA Reference" -> "Methods"
vk вне форума  
 
Автор темы   Непрочитано 19.12.2003, 18:12
#6
{Smirnoff}

Инженер по системам безопасности
 
Регистрация: 23.11.2003
Рига
Сообщений: 1,099


Да смотрел. Единственное что там синтаксис для VBA. А как ссылаться на прстранство листа или модели? В первом аргументе, смещая остальные? Если не сложно киньте примерчик, что то я не совсем этот процесс понимаю.
{Smirnoff} вне форума  
 
Непрочитано 19.12.2003, 20:01
#7
vk

сисадмин
 
Регистрация: 26.08.2003
Самара
Сообщений: 1,022
<phrase 1=


"В первом аргументе, смещая остальные" - интересная формулировка В общем виде порядок следования аргументов будет именно таким для всех vla- методов.
Для создания текста (vla-addtext vla:modelspase "mystring" ....... и т.д.

Однако (IMHO), не всегда удобно создавать примитивы таким образом, так как они всегда создаются в (плане) WCS и при работе в 3-мерке требуют последующего перемещения (и поворота) на место постоянной дислокации.
vk вне форума  
 
Автор темы   Непрочитано 19.12.2003, 20:42
#8
{Smirnoff}

Инженер по системам безопасности
 
Регистрация: 23.11.2003
Рига
Сообщений: 1,099


Спасибо
{Smirnoff} вне форума  
 
Непрочитано 22.12.2003, 09:58
#9


 
Сообщений: 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)
)
 
 
Автор темы   Непрочитано 22.12.2003, 13:07
#10
{Smirnoff}

Инженер по системам безопасности
 
Регистрация: 23.11.2003
Рига
Сообщений: 1,099


Спасибо! Я уже сделал через ActiveX, короче и никакой обработчик ошибок не нужен. И системные переменные менять не нужно, для изменения параметров текста VLA-PUT-... и все ОК!

Всем спасибо!
{Smirnoff} вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как сделать (coммаnd "_.text"...

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск