- UID
- 185801
- 积分
- 27
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2004-10-21
- 最后登录
- 1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
下面是偶编的一个小东东,还是有些问题
程序的目的是先画引出线,然后再第一点画一根类似标注的短斜线
运行时发现一个很怪的问题,在一个不大的屏幕范围里运行时,没有问题
但先 画一个10000长的线,再 zoom , all,然后再这个屏幕范围内执行下面的lisp程序,
相当于画的引出线很长,结果画出的短斜线成了一个点,但是list的性质还是线,调试中发现
整个过程 短斜线 的两端点坐标 pa,pb 的计算好像没错,接着的语句
(command "line" pa pb "") 应该也不会有问题呀? 不知道是哪一步出错了,是不是精度设置问题
(defun C:ds (/ p1 p2 pa pb ObliqueLength)
;;;设置短斜线的长度
(setq ObliqueLength (getreal "enter ObliqueLength<200>:"))
(if (null ObliqueLength)
(setq ObliqueLength 200.0)
)
;;;画引出线
(setq p1 (getpoint "Specify first point:"))
(setq p2 (getpoint p1 "\nSpecify next point:"))
(command "line" p1 p2)
(while (setq p2 (getpoint p2 "Specify next point or :"))
(command p2)
) ;while
(command)
;;;画短斜线
(setq pa (polar p1 (/ pi 4) (/ ObliqueLength 2.0)))
(setq pb (polar p1 (* pi 1.25) (/ ObliqueLength 2.0)))
(command "line" pa pb "") ;;;???????????????????????
(princ)
) |
|