明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 909|回复: 3

[已解答] 谁能帮忙看下,关于entmake绘制直线的问题

[复制链接]
发表于 2014-4-13 14:37 | 显示全部楼层 |阅读模式
写了段代码下面这样行
(defun c:sss()
  (entmake '((0 . "LINE")
      (62 . 1) ;颜色
      (10 100 100) ;起点
      (11 200 200) ;终点
      (6 . "center")
     )
  ) ;_ 结束entmake
  )
但是写成下面这样就不行
(defun c:sss()
  (setq p5 (list 100 100))
  (entmake '((0 . "LINE")
      (62 . 1) ;颜色
      (10 p5) ;起点
      (11 200 200) ;终点
      (6 . "center")
     )
  ) ;_ 结束entmake
  )
提示 DXF 组不正确: (10 P5)

不知道是什么原因
发表于 2014-4-13 14:58 | 显示全部楼层
这样试试:
(defun c:sss()
  (setq p5 (list 100 100))
  (entmake (list '(0 . "LINE")
      '(62 . 1) ;颜色
      (cons 10 p5) ;起点
      '(11 200 200) ;终点
      '(6 . "center")
     )
  ) ;_ 结束entmake
  )

'(...)是表达一个不经处理的表达式,所以,其中包含的变量均不会被替换成“值”,所以,表达式不能符合。
在有变量表和固定的表一起时,要用list进行组合,也就是说,把list提到前面。
式中第二个错误是“(10 p5)”,这样是无法组合的,放一个点也不行,要用cons。
另一个不足之处是200、300这些数值,一般应使用实数,即200.0、300.0,在这里不算错误,但这是习惯,如果不养成好的习惯,以后可能会有意想不到的麻烦,比如除法运算,整数和实数是不同的。
 楼主| 发表于 2014-4-13 15:05 | 显示全部楼层
ll_j 发表于 2014-4-13 14:58
这样试试:
(defun c:sss()
  (setq p5 (list 100 100))

可以了。非常感谢!
发表于 2014-4-13 21:08 | 显示全部楼层
感谢 ll_j 解答学习了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-6-2 18:03 , Processed in 0.125224 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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