|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Преобразование полей в текст
проектирование предприятий
Регистрация: 22.06.2006
Сообщений: 7
|
||
Просмотров: 16869
|
|
||||
строительство Регистрация: 16.01.2004
Петербург
Сообщений: 165
![]() |
>Лентяй.
Не считаю смешение стилей чем-то криминальным. Чем удобно - тем и пользуюсь. Данный стиль никак не связан с Алексеем(Крысом). Может жить и Ваш вариант , однако. 1.В функции field-to-text перед (princ) пропущена закрывающая скобка. 2.В функции conv перед (setq dict (vla-GetExtensionDictionary x)) пропущен progn. |
|||
![]() |
|
||||
строительство Регистрация: 16.01.2004
Петербург
Сообщений: 165
![]() |
Кроме того, если расширить действие функции в части "убийства"
field в примитиве acad_table , то необходимо найти связь этого примитива с блоком *T в котором и находятся данные Field's. Через ActiveX это достаточно неудобно , а в entget данные об имени блока лежат на поверхности (в DXF 2). И как тогда не смешивать стили? |
|||
![]() |
|
|||||
Project Engineer Регистрация: 05.01.2005
Лос Анджелес
Сообщений: 1,392
|
Цитата:
Цитата:
Цитата:
Цитата:
|
||||
![]() |
|
||||
проектирование предприятий Регистрация: 22.06.2006
Сообщений: 7
|
Незнаю как оно у Вас работает возможно я что-то не тосделал.
Я создал кнопку в Custmize, в Macros вписал выше выложенные коды (кнопки две) и ни одна не работает, после запуска кода Лентяя, даже после поправок, почемуто вызывает меню Custmize, я его долко пытаюсь закрыть (эдак раз 5), а если АвтоКАД только открыл и запускаю програму тогда открывается справка смотри ниже скопировал из текстового окна: Открывается файл формата AutoCAD 2004. Выполняется регенерация листов. Выполняется регенерация модели. AutoCAD Express Tools Copyright © 2002-2004 Autodesk, Inc. Утилиты меню AutoCAD загружены. Команда: Команда: Команда: _(defun Команда LISP недоступна. Команда: conv Неизвестная команда "CONV". Для вызова справки нажмите F1. Команда: (x / dict) ; ошибка: no function definition: X Команда: _HELP Команда: СПРАВКА Команда: СПРАВКА Команда: (if (and (= (vla-get-objectname x) "AcDbMText") ((_> (= (vla-get-HasExtensionDictionary x) :vlax-true)) (_> (progn (setq dict (vla-GetExtensionDictionary x)) ((_> (vlax-for item dict (((_> (if (= (vla-get-name item) "ACAD_FIELD") ((((_> (progn (vla-remove dict "ACAD_FIELD") (((((_> (vla-put-textstring x (vl-string-trim "%<>" (vla-get-textstring x))))))) (_> ) ; ошибка: неверный тип аргумента: VLA-OBJECT nil Команда: defun Неизвестная команда "DEFUN". Для вызова справки нажмите F1. Команда: СПРАВКА Команда: СПРАВКА Команда: СПРАВКА Команда: СПРАВКА Команда: (defun C:field-to-text ( / adoc bks ass) (_> (vl-load-com) (_> (setq adoc (vla-get-activedocument (vlax-get-acad-object))) (_> (mapcar '(lambda (x y) (set x (vlax-get-property adoc y))) '(ass bks) ((_> '(ActiveSelectionset Blocks)) (_> (if (> (vla-get-count ass) 0) (vla-clear ass)) (_> (vla-SelectOnScreen ass) (_> (if (>= (vla-get-count ass) 1) ((_> (vlax-for x ass (((_> (cond ((= (vla-get-objectname x) "AcDbBlockReference") (((((_> (vlax-for it (vla-item bks (vla-get-name x)) (conv it))) ((((_> block ((((_> ((= (vla-get-objectname x) "AcDbMText") (((((_> (conv x)))) ((_> vlax-for) (_> (princ) (_> ) ; ошибка: синтаксическая ошибка Команда: end Неизвестная команда "END". Для вызова справки нажмите F1. Команда: Команда: Команда: _ai_selall Выбор объектов...готово. Команда: *Прервано* |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,483
|
FIELDDISPLAY :
Цитата:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
инженер (КМ) Регистрация: 30.10.2004
Красноярск
Сообщений: 3,825
|
Цитата:
Прогу надо скопировать в блокнот, сохранить с расширением lsp и поместить его в автозагрузку. А макрос на кнопку сделать такой Код:
|
|||
![]() |
|
||||
Регистрация: 25.09.2010
Сообщений: 9
|
Господа! А не появилось ли по данной теме что-нить нового за прошедшие года? Автодеск сам эту команду так и не сделал до сих пор?
З.Ы. И да, оба лиспа таки не фурычат. Лисп Эдуарда запускается, просит выбрать объекты, но объекты выбрать не удается. Лисп Лентяя выдает ошибку при запуске ( и с progn'ом, и без). Досадно. З.З.Ы. Я понимаю, что прошло 4,5 года.
__________________
Автырь благодарит редактыря и корректыря за предоставленный ему шанец! Последний раз редактировалось Kraggash, 30.01.2011 в 20:47. |
|||
![]() |
|
||||
Родственная тема
Как все поля чертежа сразу преобразовать в текст?
__________________
Как использовать код на Лиспе читаем здесь |
||||
![]() |