|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
17.12.2003, 17:56 | #1 | |
Помогите доработать прог. написания имени и адреса файла
Архитектор
Израиль
Регистрация: 14.10.2003
Сообщений: 365
|
||
Просмотров: 6454
|
|
||||
сисадмин Регистрация: 26.08.2003
Самара
Сообщений: 1,022
|
Вобще-то, все в норме. Вот что выдает:
Command: name Pick an insertion point of string: text Current text style: "Romant" Text height: 9.9317 Specify start point of text or [Justify/Style]: Specify height <9.9317>: Specify rotation angle of text <20>: Enter text: 3 (1).dwg Command: nil Посмотри, может быть, у тебя где-то затесалась (setvar "cmdecho" 0). Проверь и если она действительн = 0, сделай ее = 1. |
|||
|
||||
LISP-программист Регистрация: 25.08.2003
Тутэйшы
Сообщений: 238
|
С командой text при таком ее использовании может быть много проблем. На одну ты уже напоролся. Может случиться так, что в твоем рисунке установлена фиксированная высота шрифта. В таком случае запросов на ввод данных будет меньше (AutoCAD не спросит высоту текста) и, следовательно, количество твоих pause не будет соотвествовать количеству запросов AutoCAD. Результат: сообщение об ошибке и вылет программы.
Единственно верный выход в таком случае: создавать текстовую строку с использованием функций entmake или vla-add-text, предварительно определив параметры текста. Да, получается сложнее, но надежнее, универсальнее, быстрее... Для себя давно решил: если в программе можно заменить функцию command на entmake или vla-add-*, то именно так и нужно поступить.
__________________
Там все есть для счастья - меня там только нет. Так это значит, что я там - буду! |
|||
|
||||
LISP-программист Регистрация: 25.08.2003
Тутэйшы
Сообщений: 238
|
Алекс, попробуйте установить фиксированную высоту шрифта и воспользоваться вашим макросом. Вот протокол:
Код:
__________________
Там все есть для счастья - меня там только нет. Так это значит, что я там - буду! |
|||
|
||||
Архитектор Регистрация: 14.10.2003
Израиль
Сообщений: 365
|
Спасибо, светлейшие умы. Лиспик удалось привести в терп. вид:
;;Designed by Vlad Grinzaid 16.12.2003 (defun cath () (setq name (getvar "dwgname")) (setq prefix (getvar "dwgprefix")) (setq path (strcat prefix name)) (setq inspointext (getpoint "\Pick an insertion point of string: ")) (command "cmdecho" "1" "") (command "-style" "Stamp" "txt" "0" "1" "0" "n" "n" "n") (command "text" inspointext pause pause path)) (defun c:name () (setq name (getvar "dwgname")) (setq inspointext (getpoint "\Pick an insertion point of string: ")) (command "cmdecho" "1" "") (command "-style" "Stamp" "txt" "0" "1" "0" "n" "n" "n") (command "text" inspointext pause pause name)) (load "C:/Program Files/ACAD2000/EXPRESS/julian.lsp") (defun c:dat (/ j c cdate m d y hh mm ss msec) (setq inspointext (getpoint "\Pick an insertion point of string: ")) (setq cdate (jtod (setq j (getvar "date"))) c (fix cdate) y (/ c 10000) ; Get year m (rem (/ c 100) 100) ; Ger month d (rem c 100) ; Get day c (- cdate (fix cdate)) ; Strip date from date/time c (fix (* c 1000000000)) ; Scale time to get HHMMSSmmm integer hh (/ c 10000000) ; Get hours mm (rem (/ c 100000) 100) ; Get minutes ss (rem (/ c 1000) 100) ; Get seconds msec (rem c 1000) ; Get milliseconds ) (setq attr (strcat (itoa d) "." (itoa m) "." (itoa y))) (command "cmdecho" "1" "") (command "-style" "Stamp" "txt" "0" "1" "0" "n" "n" "n") (command "text" inspointext pause pause attr)) ) |
|||
|
||||
сисадмин Регистрация: 26.08.2003
Самара
Сообщений: 1,022
|
К такой строке
(command "-style" "Stamp" "txt" "0" "1" "0" "n" "n" "n") я отношусь с некоторой опаской. Если для какого то конкретного шрифта, то вроде ничего, а в общем виде для любого шрифта лучше использовать (entmod) и/или (entmake) не указывая параметры, которые могут быть установлены по умолчанию. |
|||
|
||||
JTOD -- Converts Julian date to AutoCAD calendar date/time
Находится в файле julian.lsp. Файл лежит в папке Express. Чтобы узнать где, набери (findfile "julian.lsp"). Он находится в путях поиска, поэтому достаточно набрать (load "julian.lsp") . Но это то же самое, что использовать переменную CDATE Код:
|
||||
|
||||
А вообще теперь полями это делается без проблем. Из старых способов - RTEXT. Вот ссылочка
http://www.autocad.ru/cgi-bin/f1/board.cgi?t=27579KG |
||||