liuhaixin88 发表于 2022-7-5 23:01:49

如何更改sym的层

我修改了这个lisp,引线可以更改为“dim”层,但公差符号不能更改为“dim”层,为什么?
我有两个问题。
1、如何将公差符号也更改为“dim”层,
2、引线颜色为ByLayer,公差符号颜色为索引颜色4)
(defun c:QS (/ *error* DICEN)
(defun *error* (msg)
   (redraw)
   (if cl
   (setvar 'clayer cl)
   )
   (if (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")
   (princ msg)
   (princ (strcat "\n** Error: " msg " **"))
   )
)
(setq cl (getvar 'clayer))
(if (not (tblsearch "LAYER" "dim"))
   (entmake '((0 . "LAYER")
            (100 . "AcDbSymbolTableRecord")
            (100 . "AcDbLayerTableRecord")
            (370 . 18)
            (2 . "dim")
            (70 . 0)
            (62 . 3)
            (6 . "Continuous")
             )
   )
)
(setvar 'clayer "dim")
(setq DICEN (namedobjdict))
(if (dictsearch DICEN "AcadDim")
   (dictremove DICEN "AcadDim")
)
(dictadd DICEN
          "AcadDim"
         (entmakex '((0 . "XRECORD")
                     (100 . "AcDbXrecord")
                     (280 . 1)
                     (90 . 990106)
                     (3 . "")
                     (60 . 2)
                     (61 . 0)
                     (62 . 1)
                     (63 . 1)
                     (64 . 0)
                     (65 . 0)
                     (66 . 0)
                     (67 . 3)
                     (68 . 1)
                     (69 . 0)
                     (70 . 0)
                     (71 . 0)
                     (72 . 0)
                     (40 . 0.0)
                     (170 . 2)
                     )
             )
   )
(command "Qleader")
(setvar 'clayer cl)
(princ)
)

mostafa badran 发表于 2022-7-5 23:30:45

尝试此操作以更改公差层。
(defun c:QS (/ *error* DICEN)
(defun *error* (msg)
   (redraw)
   (if cl
   (setvar 'clayer cl)
   )
   (if (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")
   (princ msg)
   (princ (strcat "\n** Error: " msg " **"))
   )
)
(setq cl (getvar 'clayer))
(if (not (tblsearch "LAYER" "dim"))
   (entmake '((0 . "LAYER")
            (100 . "AcDbSymbolTableRecord")
            (100 . "AcDbLayerTableRecord")
            (370 . 18)
            (2 . "dim")
            (70 . 0)
            (62 . 3)
            (6 . "Continuous")
             )
   )
)

(setq DICEN (namedobjdict))
(if (dictsearch DICEN "AcadDim")
   (dictremove DICEN "AcadDim")
)
(setvar 'clayer "dim")
(dictadd DICEN
          "AcadDim"
         (entmakex '((0 . "XRECORD")
                     (100 . "AcDbXrecord")
                     (280 . 1)
                     (90 . 990106)
                     (3 . "")
                     (60 . 2)
                     (61 . 0)
                     (62 . 1)
                     (63 . 1)
                     (64 . 0)
                     (65 . 0)
                     (66 . 0)
                     (67 . 3)
                     (68 . 1)
                     (69 . 0)
                     (70 . 0)
                     (71 . 0)
                     (72 . 0)
                     (40 . 0.0)
                     (170 . 2)
                     )
             )
   )
(command "Qleader")

(princ)
)

liuhaixin88 发表于 2022-7-5 23:58:32

 
我看到你删除了这个
(setvar 'clayer cl)
暗显完成后,如何恢复到上一层?

liuhaixin88 发表于 2022-7-6 00:16:00

(setvar’clayer cl);;删除此选项可以将符号更改为暗层。
暗显完成后,如何恢复到上一层?
页: [1]
查看完整版本: 如何更改sym的层