明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1404|回复: 5

[求助]请问这句怎么就不行呢?

[复制链接]
发表于 2006-12-16 13:47 | 显示全部楼层 |阅读模式

(entmake (list (0 . "LWPOLYLINE") (90 . 3) (10 10 10)(10 20 30)(10 30 40)))

提示:错误: 参数类型错误: consp "LWPOLYLINE",怎么回事呢,请高手指点一下哈

发表于 2006-12-16 14:11 | 显示全部楼层

(defun entmakepolyline (lst)
  (entmakex (append
       (list '(0 . "LWPOLYLINE") '(100 . "AcDbEntity") '(100 .

"AcDbPolyline")
      (cons 90 (length lst)) '(70 . 0) ;;;1 is closed
       ) ;_  list
       (mapcar
  '(lambda (x)
     (cons 10 x)
   )
  lst
       )
     ) ;_  append
  )
)

 楼主| 发表于 2006-12-16 15:24 | 显示全部楼层
本帖最后由 作者 于 2006-12-16 17:04:34 编辑

谢谢指教。

出现这样的提示了: 

错误: DXF 组不正确: ((0 .
"LWpolyline") (43 . 1) (100 . "AcDbPolyline") (90 . 31) (8 . "tracklines") (70 . 0) (10 495189 4.14386e+006) (10 495188 4.14386e+006) (10 495187.0 4143853)
(10 495187 4.14385e+006) (10 495187.0 4.14385e+006) (10 495187.0 4143842) (10 495187.0 4.14384e+006) (10 495188.0 4.14383e+006) (10 495188.0 4.14383e+006) (10 495189.0 4143828) (10 495190.0 4.14382e+006) (10 495192.0 4.14382e+006) (10 495193.0 4.14382e+006) (10 495195.0 4.14382e+006) (10 495197.0 4.14381e+006) (10 495199.0 4.14381e+006) (10 495202.0 4.14381e+006) (10 495204.0 4.14381e+006) (10 495207.0 4.1438e+006) (10 495209.0 4.1438e+006) (10 495212.0 4.1438e+006) (10 495214.0 4.1438e+006) (10 495216.0 4.1438e+006) (10 495218.0 4.1438e+006) (10 495220.0 4.1438e+006) (10 495222.0 4143794) (10 495223.0 4.14379e+006) (10 495225.0 4.14379e+006) (10 495226.0 4.14379e+006) (10 495227.0 4.14379e+006) (10 495228.0 4.14379e+006))

这样的组码怎么不正确呢?

发表于 2006-12-17 13:42 | 显示全部楼层

(defun entmakepolyline (lst)
  (entmakex (append
       (list '(0 . "LWPOLYLINE")
      '(100 . "AcDbEntity")
      '(100
        .

        "AcDbPolyline"
       )
      (cons 90 (length lst))
      '(70 . 0)
      '(43 . 1)
;;;1 is closed
       ) ;_  list
       (mapcar
  '(lambda (x)
     (cons 10 x)
   )
  lst
       )
     ) ;_  append
  )
)
(setq lst (list '(495189 4.14386e+006) '(495188 4.14386e+006) '(495187.0 4143853)
  '(495187 4.14385e+006) '(495187.0 4.14385e+006) '(495187.0 4143842)
  '(495187.0 4.14384e+006) '(495188.0 4.14383e+006) '(495188.0 4.14383e+006)
  '(495189.0 4143828) '(495190.0 4.14382e+006) '(495192.0 4.14382e+006)
  '(495193.0 4.14382e+006) '(495195.0 4.14382e+006) '(495197.0 4.14381e+006)
  '(495199.0 4.14381e+006) '(495202.0 4.14381e+006) '(495204.0 4.14381e+006)
  '(495207.0 4.1438e+006) '(495209.0 4.1438e+006) '(495212.0 4.1438e+006)
  '(495214.0 4.1438e+006) '(495216.0 4.1438e+006) '(495218.0 4.1438e+006)
  '(495220.0 4.1438e+006) '(495222.0 4143794) '(495223.0 4.14379e+006)
  '(495225.0 4.14379e+006) '(495226.0 4.14379e+006) '(495227.0 4.14379e+006)
  '(495228.0 4.14379e+006))
)
(entmakepolyline lst)

;;以上代码运行正确

 楼主| 发表于 2006-12-17 16:06 | 显示全部楼层

[讨论]谢谢

谢谢了,可以了。可是还不明白差在哪儿,呵呵。慢慢研究吧,谢谢哈!

发表于 2006-12-18 17:01 | 显示全部楼层

用上述方法建立太死板,对于不同版本的AUTOCASD,上述过程就不一定适合里.

比较好的办法是调用既有的参数修改后形成新的.

建立层的过程:

(setq ent (tblobjname "layer" "0"))

(setq ent_list  (entget ent))

(setq ent_list (subst (cons 1 newname) (assoc 1 ent_list) ent_list))  ;新的层名

((setq ent_list (subst (cons 62 4) (assoc 62 ent_list) ent_list)) ;新层颜色

...

(entmake ent_list)

本程序可以在R2000以上的任何版本中安全运行.

 

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-11 23:41 , Processed in 0.150215 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表