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

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Менять свойства прописью

Менять свойства прописью

Ответ
Поиск в этой теме
Непрочитано 17.08.2010, 14:10 #1
Менять свойства прописью
ZZ_top
 
конструктор
 
Санкт-Петербург
Регистрация: 04.06.2010
Сообщений: 11

Всем привет

Можно-ли в таблице свойств объекта ("Properties") менять значения через командную строку? (например, сделать viewport "locked", поставить значение масштаба 1/100 и т.д.)

Спасибо.
Просмотров: 2116
 
Непрочитано 17.08.2010, 14:51
#2
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411


Программно (то есть лиспом) - можно. Засунув весь лисп в ком.строку - по идее тоже.
Код:
[Выделить все]
Command: (defun test () (vl-load-com) (if (and (= (type (setq vp (vl-catch-all-apply (function (lambda () (vlax-ename->vla-object (car (entsel "\nSelect VP <Cancel> : ")))))))) 'vla-object) (= (vla-get-ObjectName vp) "AcDbViewport")) (vla-put-DisplayLocked vp :vlax-true)))
Command: (test)
Но! Тут срабатывает ограничение, и полностью код не влезает.
В AutoCAD 2008 приходится делать так:
Код:
[Выделить все]
Command: (defun test () (vl-load-com) (if (and (= (type (setq vp 
(vl-catch-all-apply (function (lambda () (vlax-ename->vla-object (car (entsel 
"\nSelect VP <Cancel> : ")))))))) 'vla-object) (= (vla-get-ObjectName vp) 
"AcDbViewport"))
((_> (vla-put-DisplayLocked vp :vlax-true)))
И потом уже запускать (test)
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 17.08.2010, 21:38
#3
twilight


 
Регистрация: 17.10.2009
Сообщений: 1,108


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Программно (то есть лиспом) - можно.
-vports
twilight вне форума  
 
Непрочитано 17.08.2010, 21:43
#4
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411


А, например, слой или тип линии для видового экрана так поменять можно? При этом для существующего видового экрана.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 17.08.2010, 22:03
#5
twilight


 
Регистрация: 17.10.2009
Сообщений: 1,108


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
А, например, слой или тип линии для видового экрана так поменять можно? При этом для существующего видового экрана.
change

Макросами удобнее. В основном вещи меняются по одному принципу. Например закрываются все видовые экраны на листе, а если открывается то только выделенный. Или слой делается текущим по выделенному объекту, а не по набранному руками имени. Слои вставляются из шаблона, а не создается руками со сменой цвета, веса, имени. Поэтому быстрее вызвать алиасом готовую команду, а не набивать в командной строке шифровку Центру.
twilight вне форума  
 
Непрочитано 17.08.2010, 22:42
#6
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411


Вообще-то намного проще (по крайней мере мне) написать один (!) универсальный лисп, который будет делать чо хочу. А вызывать уже его, передавая необходимые параметры.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 18.08.2010, 08:43
#7
twilight


 
Регистрация: 17.10.2009
Сообщений: 1,108


Макросы удобнее по сравнению с набором руками, а не по сравнению с лиспом. Разный синтаксис, суть таже.
А вызов с параметрами и внутренним выбором действия или вызов без параметров с уже выбранным действием на мой взгляд не отличаются друг от друга.
twilight вне форума  
 
Непрочитано 18.08.2010, 10:05
#8
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411


twilight, примеры макросов на моих кнопках:
Код:
[Выделить все]
^C^C^P(defun c:cadware() (if (not *kpblc-activedoc*) (alert "Программа не установлена!")) (_kpblc-draw-trim-line nil));cadware;
^C^C^P(defun c:cadware() (if (not *kpblc-activedoc*) (alert "Программа не установлена!")) (_kpblc-draw-trim-line t))
Ничего, работают
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Менять свойства прописью



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нет раздела Текст в палитре Свойства kinsti AutoCAD 23 21.04.2012 03:06
описывать свойства элементов по слою (bylayer) или прямо АлексЮстасу AutoCAD 110 13.03.2010 03:51
Измерение площади поверхности в SOLIDWORKS и авт. запись значения в свойства детали Панфилонец SolidWorks 14 15.12.2009 18:10
Как читать свойства Custom из чертежа viter_alex Программирование 6 27.02.2009 10:03