Sieh dir das mal an:
(defun C:RemLayerFilters (/ eprLayFilt lstTemp lstFilters enaFilter)
(setq eprLayFilt (entget (cdr (assoc 360 (entget (cdr (assoc 360 (entget
(cdr (assoc 330 (entget (tblobjname "LAYER" "0"))))))))))))
(foreach lstTemp eprLayFilt
(if (= (car lstTemp) 360)
(progn
(princ lstTemp)
(setq lstFilters (append lstFilters (list (cdr lstTemp))))
)
)
)
(if lstFilters
(foreach enaFilter lstFilters (entdel enaFilter))
)
(princ)
)
(defun C ELFILTERS ( / lext-dict ldict lay_entity lay_filters filter_names);das smily ist ein c:'D'
(vl-load-com)
(setq lext-dict
(entget
(vlax-vla-object->ename
(vla-GetExtensionDictionary
(vla-get-layers
(vla-get-ActiveDocument
(vlax-get-acad-object)
)
)
)
)
)
)
(if (setq ldict (member (cons 3 "ACAD_LAYERFILTERS") lext-dict))
(cdr (assoc 360 ldict))
nil
)
(if ldict
(progn
(setq lay_entity (cdr (assoc 360 ldict)))
(setq lay_filters (entget lay_entity))
(while (assoc 3 lay_filters)
(progn
(setq filter_names (cdr (assoc 3 lay_filters)))
(dictremove lay_entity filter_names)
(setq lay_filters (entget lay_entity))
)
)
)
)
(princ)
)
;;; use (setq layerfilters(entget(jb:GetAcadLayerFilterDictionary)))
(defun jb:GetAcadLayerFilterDictionary (/ lext-dict ldict)
(setq lext-dict
(entget
(vlax-vla-object->ename
(vla-GetExtensionDictionary
(vla-get-layers
(vla-get-ActiveDocument
(vlax-get-acad-object)
)
)
)
)
)
)
(if
(setq ldict (member (cons 3 "ACAD_LAYERFILTERS") lext-dict))
(cdr (assoc 360 ldict))
nil
)
)
(DEFUN C ELFIL();das smily ist ein c:'D'
(progn
(vl-load-com)
(defun ax:GetAcadLayerFilterDictionary (/ dict)
(setq dict
(member (cons 3 "ACAD_LAYERFILTERS")
(entget
(vlax-vla-object->ename
(vla-GetExtensionDictionary
(vla-get-layers
(vla-get-ActiveDocument
(vlax-get-acad-object)
)
)
)
)
)
)
)
(if dict
(cdr (assoc 360 dict))
nil
)
)
(entdel (ax:GetAcadLayerFilterDictionary))
)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
und das:
(defun C:list_layerstates ( / lst a b n )
(setq a (getstring "\nLayer states to list <*>:"));setq
(if (equal a "") (setq a "*"));if
(setq a (strcase a));setq
(if (setq lst (get_layerstates));setq
(progn
(setq n 0);setq
(repeat (length lst)
(setq b (nth n lst));setq
(if (wcmatch b a)
(princ (strcat "\n" b))
);if
(setq n (+ n 1));setq
);repeat
);progn then
(princ "\nNo saved layer states found")
);if
(princ "\n")
);defun list_layerstates
(defun get_layerstates ( / e1 xd lst lst2 lst3 a b n j)
(setq lst (tnlist "layer"))
(setq b (length lst));setq
(setq n 0);setq
(repeat b ;;;;(length lst)
(setq e1 (entget (TBLOBJNAME "layer" (nth n lst)) '("RAK"))
xd (cdr (assoc -3 e1))
lst2 (cdr (assoc "RAK" xd))
;lst2 (m_assoc 1000 lst2)
);setq
(setq j 0);setq
(repeat (length lst2)
(setq a (nth j lst2));setq
(if (or (not (equal (car a) 1000))
(not (equal "{" (substr (cdr a) 1 1)))
);or
(setq a nil)
(progn
(setq a (substr (cdr a) 2))
(if (not (member a lst3))
(setq lst3 (append lst3 (list a)));setq then
);if
);progn else
);if
(setq j (+ j 1));setq
);repeat
(setq n (+ n 1));setq
);repeat
(if lst3
(setq lst3 (acad_strlsort lst3));setq then
);if
lst3
);defun get_layerstates
(defun C:del_layerstates (/ e1 xd lst lste lstate
lstatewar lst2 lst3 a a1
b n za zasta zastate
)
(setq lste (tnlist "layer")
lstate (get_layerstates)
lstatewar lstate
za (length lste)
zasta (length lstate)
zastate (length lstate)
n 0
) ;setq
(repeat za
(setq e1 (entget (TBLOBJNAME "layer" (nth n lste)) '("RAK"))
xd (cdr (assoc -3 e1))
) ;_ end of setq
(if xd
(progn
(setq count (/ (- (length (car xd)) 1) 5))
(repeat count
(setq lst (cdr (assoc "RAK" xd))
a (nth 0 lst) ;(cons 1000 (strcat "{" (car lstate)));
a1 (substr (cdr a) 2)
b (cons 1000 (strcat a1 "}")) ;
) ;setq
(if (member a lst)
(progn
(setq lst2 (reverse (cdr (member a (reverse lst))))
lst3 (cdr (member b lst))
lst (append lst2 lst3)
lst (append (list "RAK") lst)
xd (subst lst (assoc "RAK" xd) xd)
xd (append (list -3) xd)
e1 (subst xd (assoc -3 e1) e1)
) ;setq
(entmod e1)
(setq xd (cdr (assoc -3 e1)))
) ;progn
) ;if
) ;_ end of repeat
) ;_ end of progn
) ;_ end of if
(setq n (+ n 1)) ;setq
) ;repeat
(if lstatewar
(progn
(princ "\n\nGELÖSCHTE STATI :\n")
(foreach zastate lstatewar
(princ (strcat zastate "\n"))
) ;_ end of foreach
) ;_ end of progn
(princ "\n\nKeine Layerstati zum löschen vorhanden.\n")
) ;_ end of if
(princ)
) ;_ end of defun
(defun tnlist ( tbna / a lst)
(if (and (equal (type tbna) 'LIST)
(equal (cadr tbna) 16)
);and
(progn
(setq tbna (car tbna));setq
(while (setq a (tblnext tbna (not a))); a acts as a rewind first time
(if (not (equal 16 (logand 16 (cdr (assoc 70 a)))))
(setq lst (append lst
(list (cdr (assoc 2 a)))
);append
);setq
);if
);while
);progn then local only
(progn
(while (setq a (tblnext tbna (not a))); a acts as a rewind first time
(setq lst (append lst
(list (cdr (assoc 2 a)))
);append
);setq
);while
);progn else
);if
lst
);defun tnlist
------------------
Gruß
CADwiesel
bin auch im Urlaub: 29.07 - 27.08
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP