测试代码
- (defun c:tt (/ return)
- (if(setq return (entget (cdr (assoc 330 (entget (tblobjname "layer" "0"))))));返回图层词典数据
- (if(setq return (cdr (assoc 360 return)));返回关联的数据
- (if(setq return (member (cons 3 "ACAD_LAYERSTATES") (entget return)));返回图层状态词典数据 (cdadr return)
- (if(setq return (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= 350 (car x))) (entget (cdadr return)))));返回状态名的图元名表 修改将在这层
-
- (if return(setq return (cddr(mapcar 'cdr (vl-remove-if-not '(lambda (x) (= 330 (car x))) (entget (car return))))));返回图层图元名表
- (if return (entget (car return));回到图层的表了=(entget(tblobjname "layer" "0"))
- )
- )
- )
- )
- )
- )
- )
下面是调试数据
- ; 1 表格 从 #<editor "<未命名 0> 正在加载..."> 加载
- _$
- _$ (setq return (entget (cdr (assoc 330 (entget (tblobjname "layer" "0"))))));返回词典数据
-
- ((-1 . <图元名: 7ef83c10>) (0 . "TABLE") (2 . "LAYER") (5 . "2") (102 . "{ACAD_XDICTIONARY") (360 . <图元名: 7ef83fa8>) (102 . "}") (330 . <图元名: 0>) (100 . "AcDbSymbolTable") (70 . 7))
- _$ (setq return (cdr (assoc 360 return)))
- <图元名: 7ef83fa8>
- _$ (setq return (member (cons 3 "ACAD_LAYERSTATES") (entget return)))
- ((3 . "ACAD_LAYERSTATES") (360 . <图元名: 7ef83fb0>) (3 . "ACLYDICTIONARY") (360 . <图元名: 7ef91020>))
- _$ (setq return (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= 350 (car x))) (entget (cdadr return)))))
- (<图元名: 7ef83fb8> <图元名: 7ef91018>)
- _$ (entget (car return))
- ((-1 . <图元名: 7ef83fb8>) (0 . "XRECORD") (5 . "F7") (102 . "{ACAD_REACTORS") (330 . <图元名: 7ef83fb0>) (102 . "}") (330 . <图元名: 7ef83fb0>) (100 . "AcDbXrecord") (280 . 1) (91 . 495) (301 . "") (290 . 0) (302 . "0") (330 . <图元名: 7ef83fa0>) (90 . 8) (62 . 7) (370 . -3) (331 . <图元名: 7ef83cb0>) (1 . "Color_7") (330 . <图元名: 7ef83f98>) (90 . 8) (62 . 7) (370 . -3) (331 . <图元名: 7ef83cb0>) (1 . "Color_7") (330 . <图元名: 7ef83f88>) (90 . 8) (62 . 7) (370 . -3) (331 . <图元名: 7ef83cb0>) (1 . "Color_7") (330 . <图元名: 7ef83c80>) (90 . 8) (62 . 7) (370 . -3) (331 . <图元名: 7ef83cb0>) (1 . "Color_7"))
- _$
最后的表是 状态管理器命名的图元数据,其中第三个330组码即图层的图元名,后面的代码应该是相关状态组码值,前面的302应该是图层状态设定当前图层名,其他还得查dxf手册。
理论上应该改可以修改这个表,达到修改图层的目的。
|