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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как создать фильр слоёв -Layer _filter ...

Как создать фильр слоёв -Layer _filter ...

Ответ
Поиск в этой теме
Непрочитано 23.03.2012, 15:36 #1
Как создать фильр слоёв -Layer _filter ...
Scorpion_n
 
ДиЗаЙнЁр я типа :-) CAD2011-2012
 
Дома
Регистрация: 21.02.2012
Сообщений: 6

Приветствую,
вопрос как в титуле:
Пытаюсь создать фильтр слоёв программно, точнее сказать используя только коммандную строку.
(вписать в диалоговом окне маску фильтра уже научился :-), нужен скрипт)

Делаю так:

_.-layer
_filter
_New
_P
_All
Enter property filter definition: Ну и тут облом, ничего не могу найти на тему как должен выглядеть 'этот "Definition".
Третий день играюсь, перетрусил уже кучу форумов...

Подскажите, плиз, кто знает.

Последний раз редактировалось Scorpion_n, 23.03.2012 в 15:55.
Просмотров: 3134
 
Непрочитано 23.03.2012, 15:43
#2
Кулик Алексей aka kpblc
Moderator

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


http://www.google.ru/cse?cx=partner-...%B2&gsc.page=1
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 23.03.2012, 16:13
#3
Scorpion_n

ДиЗаЙнЁр я типа :-) CAD2011-2012
 
Регистрация: 21.02.2012
Дома
Сообщений: 6


Я это всё видел, но нигде не могу найти как программно создать дефиницию фильтра.
Везде только функции манипулирования (переключить фильтр, удалить, активировать и т.д.)

Вопрос, как вписать в коммандной строке что я хочу фильтр слоёв с именами "235*" на пример...
Scorpion_n вне форума  
 
Непрочитано 23.03.2012, 16:32
#4
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,991
<phrase 1= Отправить сообщение для VVA с помощью Skype™


http://www.theswamp.org/index.php?topic=36745.0
Код:
[Выделить все]
; MLF.lsp
; December 2010  (The swamp.org) 
;====================================================================================================
(defun c:MLF(/ FILTLST LFILTOBJ SAFECODE SAFEFILT) 
  (vl-load-com) 
  (setq FILTLST  (list 
                  	 ;;name  	Lay 	col  	lt  flags 	lw  	plot 
                   (list "Group_00" 	"0*"	"*"	"*" 0 		"*"	"*") 
                   (list "Group_10" 	"1*"	"*"	"*" 0 		"*"	"*") 
                   (list "Group_20" 	"2*"	"*"	"*" 0 		"*"	"*") 
                   (list "Group_30" 	"3*"	"*"	"*" 0 		"*"	"*") 
                   (list "Group_40" 	"4*"	"*"	"*" 0 		"*"	"*") 
                   (list "Group_50" 	"5*"	"*"	"*" 0 		"*"	"*") 
                   (list "Group_60"	"6*"	"*"	"*" 0 		"*"	"*") 
                   (list "Group_70"	"7*"	"*"	"*" 0 		"*"	"*") 
                   (list "Group_80"	"8*"	"*"	"*" 0	 	"*"	"*") 
                   (list "Group_90"	"9*"	"*"	"*" 0 		"*"	"*") 
                   
                 ) 
        LFILTOBJ (vla-addobject 
                   (vla-GetExtensionDictionary 
                     (vla-Get-Layers 
                       (vla-Get-ActiveDocument 
                         (vlax-Get-Acad-Object) 
                       ) 
                     ) 
                   ) 
                   "ACAD_LAYERFILTERS" 
                   "AcDbDictionary" 
                 ) 
        SAFECODE (vlax-make-safearray 2 '(0 . 6)) 
        SAFEFILT (vlax-make-safearray 12 '(0 . 6)) 
  ) 
  (vlax-safearray-fill SAFECODE (list 1 1 1 1 70 1 1)) 
  (foreach 
         SUBLST FILTLST 
    (vlax-safearray-fill 
      SAFEFILT 
      (mapcar '(lambda (X) (vlax-make-variant X 8)) SUBLST) 
    ) 
    (vla-addxrecord LFILTOBJ (nth 0 SUBLST)) 
    (vla-setxrecorddata 
      (vla-item LFILTOBJ (nth 0 SUBLST)) 
      SAFECODE 
      SAFEFILT 
    ) 
  ) 
  (princ) 
  (princ "\nAll Layer Filters have been created.") 
  (princ) 
)
В твоем случае
Код:
[Выделить все]
; MLF.lsp
; December 2010  (The swamp.org) 
;====================================================================================================
(defun c:MLF(/ FILTLST LFILTOBJ SAFECODE SAFEFILT) 
  (vl-load-com) 
  (setq FILTLST  (list 
                  	 ;;name  	Lay 	col  	lt  flags 	lw  	plot 
                   (list "Scorpion_n" 	"235*"	"*"	"*" 0 		"*"	"*") 
;;;                   (list "Group_10" 	"1*"	"*"	"*" 0 		"*"	"*") 
;;;                   (list "Group_20" 	"2*"	"*"	"*" 0 		"*"	"*") 
;;;                   (list "Group_30" 	"3*"	"*"	"*" 0 		"*"	"*") 
;;;                   (list "Group_40" 	"4*"	"*"	"*" 0 		"*"	"*") 
;;;                   (list "Group_50" 	"5*"	"*"	"*" 0 		"*"	"*") 
;;;                   (list "Group_60"	"6*"	"*"	"*" 0 		"*"	"*") 
;;;                   (list "Group_70"	"7*"	"*"	"*" 0 		"*"	"*") 
;;;                   (list "Group_80"	"8*"	"*"	"*" 0	 	"*"	"*") 
;;;                   (list "Group_90"	"9*"	"*"	"*" 0 		"*"	"*") 
                   
                 ) 
        LFILTOBJ (vla-addobject 
                   (vla-GetExtensionDictionary 
                     (vla-Get-Layers 
                       (vla-Get-ActiveDocument 
                         (vlax-Get-Acad-Object) 
                       ) 
                     ) 
                   ) 
                   "ACAD_LAYERFILTERS" 
                   "AcDbDictionary" 
                 ) 
        SAFECODE (vlax-make-safearray 2 '(0 . 6)) 
        SAFEFILT (vlax-make-safearray 12 '(0 . 6)) 
  ) 
  (vlax-safearray-fill SAFECODE (list 1 1 1 1 70 1 1)) 
  (foreach 
         SUBLST FILTLST 
    (vlax-safearray-fill 
      SAFEFILT 
      (mapcar '(lambda (X) (vlax-make-variant X 8)) SUBLST) 
    ) 
    (vla-addxrecord LFILTOBJ (nth 0 SUBLST)) 
    (vla-setxrecorddata 
      (vla-item LFILTOBJ (nth 0 SUBLST)) 
      SAFECODE 
      SAFEFILT 
    ) 
  ) 
  (princ) 
  (princ "\nAll Layer Filters have been created.") 
  (princ) 
)
Еще хорошие ссылки
http://forums.augi.com/showpost.php?...47&postcount=3
http://cadxp.com/index.php?/topic/20...res-de-calque/
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 26.03.2012, 11:13
#5
Scorpion_n

ДиЗаЙнЁр я типа :-) CAD2011-2012
 
Регистрация: 21.02.2012
Дома
Сообщений: 6


Выбрасывает ошибку:
error: Automation Error. AcRxClassName entry is not in the system registry


:-(

Последний раз редактировалось Scorpion_n, 26.03.2012 в 11:44.
Scorpion_n вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как создать фильр слоёв -Layer _filter ...

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Можно ли выполнить проверку слабых слоёв основания и подстилающих слоёв в ФОК ПК ПАРУС? МишаИнженер Расчетные программы 10 03.10.2011 14:07
*Баг удаления групп и фильтров слоёв hwd Баги и пожелания в Autodesk 30 08.11.2009 15:03
Рисование отрезка сразу в обе стороны Дмитрий Факс AutoCAD 17 23.06.2009 13:55
Где можно взять основную надпись и рамку для када А4 Taleon AutoCAD 18 17.04.2006 22:24