dgp123 发表于 2022-7-5 17:08:03

它仅在单独的ss1中工作。请检查代码和输出文件。
 
4
 
我不知道如何将这些合并到单个评论中。。。。。。。。。
引导我兄弟。。。。。。。。。。。

Roy_043 发表于 2022-7-5 17:10:44

(defun C:FL (/ enm elst i oLay ss)
(setvar "cmdecho" 0)
(command "_.undo" "_end")
(command "_.undo" "_group")
(if (setq ss (ssget '((-4 . "<OR") (0 . "DIMENSION,TEXT") (6 . "CENTER,HIDDEN,PHANTOM") (-4 . "OR>"))))
   (progn
   (setq oLay (getvar "clayer"))
   (command "_.layer" "_make" "dime" "_ltype" "Continuous" "" "_color" 2 "" "")
   (command "_.layer" "_make" "text" "_ltype" "Continuous" "" "_color" 3 "" "")
   (if (tblobjname "LTYPE" "CENTER")
       (command "_.layer" "_make" "center" "_ltype" "CENTER" "" "_color" 1 "" "")
   )
   (if (tblobjname "LTYPE" "HIDDEN")
       (command "_.layer" "_make" "hidden" "_ltype" "HIDDEN" "" "_color" 3 "" "")
   )
   (if (tblobjname "LTYPE" "PHANTOM")
       (command "_.layer" "_make" "phantom" "_ltype" "PHANTOM" "" "_color" 7 "" "")
   )
   (setvar "clayer" oLay)
   (repeat (setq i (sslength ss))
       (setq enm (ssname ss (setq i (1- i))))
       (setq elst (entget enm))
       (cond
         ((= "DIMENSION" (cdr (assoc 0 elst)))
         (command "_.chprop" enm "" "_color" "ByLayer" "_layer" "dime" "_ltype" "ByLayer" "")
         )
         ((= "TEXT" (cdr (assoc 0 elst)))
         (command "_.chprop" enm "" "_color" "ByLayer" "_layer" "text" "_ltype" "ByLayer" "")
         )
         ((not (assoc 6 elst))
         nil
         )
         ((= "CENTER" (strcase (cdr (assoc 6 elst))))
         (command "_.chprop" enm "" "_color" "ByLayer" "_layer" "center" "_ltype" "ByLayer" "")
         )
         ((= "HIDDEN" (strcase (cdr (assoc 6 elst))))
         (command "_.chprop" enm "" "_color" "ByLayer" "_layer" "hidden" "_ltype" "ByLayer" "")
         )
         ((= "PHANTOM" (strcase (cdr (assoc 6 elst))))
         (command "_.chprop" enm "" "_color" "ByLayer" "_layer" "phantom" "_ltype" "ByLayer" "")
         )
       )
   )
   )
)
(command "_.undo" "_end")
(setvar "cmdecho" 1)
(princ)
)

dgp123 发表于 2022-7-5 17:12:52

谢谢Roy的代码,它工作得很好。

dgp123 发表于 2022-7-5 17:15:55

兄弟,我只是编辑你的代码。请检查。。。。。。。。。。
 
错误:未知命令“FL1”。按F1键获取帮助。

 
如何解决这个问题。。
 

(defun C:FL1(/ enm elst i oLay ss)
(setvar "cmdecho" 0)
(command "_.undo" "_end")
(command "_.undo" "_group")
(if (setq ss (ssget '((-4 . "<OR") (0 . "DIMENSION,TEXT,HATCH,MTEXT") (6 . "CENTER,HIDDEN,PHANTOM,CONTINUOUS,ACAD_ISO03W100") (-4 . "OR>"))))
   (progn
   (setq oLay (getvar "clayer"))
   (command "_.layer" "_make" "dime" "_ltype" "Continuous" "" "_color" 2 "" "")
   (command "_.layer" "_make" "text" "_ltype" "Continuous" "" "_color" 3 "" "")
   (command "_.layer" "_make" "hatch" "_ltype" "Continuous" "" "_color" cyan "" "")
   (if (tblobjname "LTYPE" "CENTER")
       (command "_.layer" "_make" "center" "_ltype" "CENTER" "" "_color" 6 "" "")
   )
   (if (tblobjname "LTYPE" "HIDDEN")
       (command "_.layer" "_make" "hidden" "_ltype" "HIDDEN" "" "_color" 6 "" "")
   )
   (if (tblobjname "LTYPE" "PHANTOM")
       (command "_.layer" "_make" "phantom" "_ltype" "PHANTOM" "" "_color" 7 "" "")
   )
   (if (tblobjname "LTYPE" "CONTINUOUS")
       (command "_.layer" "_make" "continuous" "_ltype" "CONTINUOUS" "" "_color" 1 "" "")
   )
   (if (tblobjname "LTYPE" "ACAD_ISO03W100")
       (command "_.layer" "_make" "Acad_iso03w100" "_ltype" "ACAD_ISO03W100" "" "_color" 6 "" "")
   )
   (setvar "clayer" oLay)
   (repeat (setq i (sslength ss))
       (setq enm (ssname ss (setq i (1- i))))
       (setq elst (entget enm))
       (cond
         ((= "DIMENSION" (cdr (assoc 0 elst)))
         (command "_.chprop" enm "" "_color" "ByLayer" "_layer" "dime" "_ltype" "ByLayer" "")
         )
         ((= "TEXT" (cdr (assoc 0 elst)))
         (command "_.chprop" enm "" "_color" "ByLayer" "_layer" "text" "_ltype" "ByLayer" "")
         )
         ((= "HATCH" (cdr (assoc 0 elst)))
         (command "_.chprop" enm "" "_color" "ByLayer" "_layer" "hatch" "_ltype" "ByLayer" "")
         )
         ((= "MTEXT" (cdr (assoc 0 elst)))
         (command "_.chprop" enm "" "_color" "ByLayer" "_layer" "text" "_ltype" "ByLayer" "")
         )
         ((not (assoc 6 elst))
         nil
         )
         ((= "CENTER" (strcase (cdr (assoc 6 elst))))
         (command "_.chprop" enm "" "_color" "ByLayer" "_layer" "center" "_ltype" "ByLayer" "")
         )
         ((= "HIDDEN" (strcase (cdr (assoc 6 elst))))
         (command "_.chprop" enm "" "_color" "ByLayer" "_layer" "hidden" "_ltype" "ByLayer" "")
         )
         ((= "PHANTOM" (strcase (cdr (assoc 6 elst))))
         (command "_.chprop" enm "" "_color" "ByLayer" "_layer" "phantom" "_ltype" "ByLayer" "")
         )
          ((= "CONTINUOUS" (strcase (cdr (assoc 6 elst))))
         (command "_.chprop" enm "" "_color" "ByLayer" "_layer" "continuous" "_ltype" "ByLayer" "")
         )
         ((= "ACAD_ISO03W100" (strcase (cdr (assoc 6 elst))))
         (command "_.chprop" enm "" "_color" "ByLayer" "_layer" "Acad_iso03w100" "_ltype" "ByLayer" "")
         )
       )
   )
   )
)
)
(command "_.undo" "_end")
(setvar "cmdecho" 1)
(princ)

Roy_043 发表于 2022-7-5 17:21:52

比较:
 
代码的结尾部分:
我建议的最后部分:
          ((= "PHANTOM" (strcase (cdr (assoc 6 elst))))
         (command "_.chprop" enm "" "_color" "ByLayer" "_layer" "phantom" "_ltype" "ByLayer" "")
         )
       )
   )
   )
)
(command "_.undo" "_end")
(setvar "cmdecho" 1)
(princ)
)

Roy_043 发表于 2022-7-5 17:23:50

如果您有:
您应该使用:
4或:
"cyan"

dgp123 发表于 2022-7-5 17:29:47

兄弟,谢谢你的回复和指导。

dgp123 发表于 2022-7-5 17:30:43

如何合并此代码。我尝试了一下,但结果是输入错误的字符串格式错误。是否可以通过此单个将此company-1层添加到company-1组过滤器。lsp
 
 
12
 
 
 
 
 
 
13
 
 
 
 
注意:每个公司都有单独的层类型,因此我尝试了这个。很抱歉给您带来不便。
 
非常感谢。
页: 1 [2]
查看完整版本: 编辑图层过滤器需要帮助