tranney 发表于 2014-12-7 15:28:40

为什么entmake创建不了Defpoints图层

本帖最后由 tranney 于 2014-12-7 15:30 编辑

最近听说entmake速度快,所以把小工具翻出来把command修改一下,结果发现下面的代码居然创建不了Defpoints图层
,运行环境为cad2011 64+天正2014 模式(defun c:123()
   (jjbtc0 "Defpoints"   60   "bylayer")
   (jjbtc0 "0-给排水层"    400"bylayer")
)
(defun jjbtc0 ( layernmlayeryslayerzt layerxx/ );创建图层
(if (null (tblsearch "LAYER" layernm))
   (progn
   (entmake (list
               '(0 . "LAYER")
               '(100 . "AcDbSymbolTableRecord")
               '(100 . "AcDbLayerTableRecord")
               (cons 2 layernm)                   ;图层名称
               (cons 6 layerxx)                   ;图层线型
               (cons 70 layerzt)                  ;图层状态(指显示、冰冻、锁定等)
               (cons 62 layerys)                  ;图层颜色
         )
   )
   (princ (strcat "\n    已用默认参数创建 "layernm" 图层。")))
   (progn
      (setq sty (entget (tblobjname "layer" layernm)))
      ;(setq sty (subst (cons 42 0) (assoc 42 sty) sty))
      (setq sty (subst (cons 6 layerxx) (assoc 6 sty) sty))
      (setq sty (subst (cons 70 layerzt) (assoc 70 sty) sty))
      (setq sty (subst (cons 62 layerys) (assoc 62 sty) sty))
      (entmod sty)
      ;(entupd (tblobjname "layer" layernm))
      (princ (strcat "\n    检测到 "layernm" 图层已存在,正在用默认参数替换。"))
    )
)
(princ)
)

ll_j 发表于 2014-12-7 16:00:20

defpoints图层是系统图层,可知的主要用途是放置标注的“点”,和0层一样,都是不能让用户进行修改的。

自贡黄明儒 发表于 2014-12-7 16:16:37

我倒是常创建这个图层,不过没用entmak.e

wzg356 发表于 2014-12-7 16:22:38

defpoints图层名是cad系统预留的,只要有标注尺寸,系统马上就会自动生成defpoints图层。
Defpoints图层中系统自动放置了各种标注的基准点。在平常是看不出来的,把标注炸开就能发现,关闭其它图层后,然后选择所有对象,就会发现里面是一些点对象。
这个图层默认是不打印出来线的。


别用defpoints图层名,换个图层名称名称。
页: [1]
查看完整版本: 为什么entmake创建不了Defpoints图层