hndwl 发表于 2012-12-1 16:20:56

entmake失败原因

本帖最后由 hndwl 于 2012-12-1 20:19 编辑

大家看看,错误在哪里,为什么不能生成呢?看了 entmake的帮助,没有找到原因,先谢谢!
(entmake '((0 . "LWPOLYLINE")
   (100 . "AcDbEntity")
   (67 . 0)
   (410 . "Model")
   (8 . "0")
   (100 . "AcDbPolyline")
   (90 . 3)
   (70 . 0)
   (43 . 0.0)
   (38 . 0.0)
   (39 . 0.0)
   (10 217.208 703.749)
   (40 . 0.0)
   (41 . 0.0)
   (42 . 0.0)
   (10 477.857 472.286)
   (40 . 0.0)
   (41 . 0.0)
   (42 . 0.0)
   (10 692.51 668.008)
   (40 . 0.0)
   (41 . 0.0)
   (42 . 0.0)
   (210 0.0 0.0 1.0)
    )
)

为什么用到程序中就不行呢?大家再看看,这是为什么?
(setq ss (ssget))
(if ss
    (progn
      (setq i 0)
      (setq j 0)
      (setq len (sslength ss))
      (while (< i len)
(setq stm (ssname ss i))
(setq es (entget stm))
(setq kzsx (assoc -3 (entget stm '("*"))))
;;;;;;;;;;;;;;;;

;(setq es (vl-remove (nth 3 es) es)) ;删除句柄5组码
;(setq es (vl-remove (nth 2 es) es)) ;删除图元名330组码
;(setq es (vl-remove (nth 0 es) es)) ;删除图元名-1组码

(if (/= kzsx nil) (setq es (append es (list kzsx))))
(entdel stm)
(if (entmake es)
   (progn (setq j (+ j 1))
   (princ (strcat "\n总计选择了"
    (rtos len 2 0)
    "个目标,已经转换了"
    (rtos j 2 0)
    "个目标。"
   )
   )
   )
)
(setq i (+ i 1))
      )


USER2128 发表于 2012-12-1 17:15:30

cad2012测试,可!
查看组码,你的不行有可能要输入90组码;
教你一个方法:
先手工沿“三个点”绘出LWPOLYLINE,然后:
command: (entget(entlast))
查看组码,对比你的程序的组码就知道了。

zyhandw 发表于 2012-12-1 17:21:15

试过了,没有问题啊,可以生成pl线!

hndwl 发表于 2012-12-1 17:39:02

谢谢,我已经处理好了,是我的图形的问题,谢谢!
页: [1]
查看完整版本: entmake失败原因