- UID
- 350134
- 积分
- 0
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2005-11-12
- 最后登录
- 1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
事件概述:
用"polar"计算坐标点pt1,pt2,当给的距离小于"3"时,
(command "pline" pt1 pt2 "")异常.
当给的距离大于"3"时,可以正常运行.
请名师指点.
怎么没有人帮忙啊!
(defun c:GJPLXG();
(initget 1 "500 1000")
(setq str (getkword "\n请输入成图比例尺_(500 或 1000):"))
(cond ((= str "500") (progn(setq jl 0.5)(setq kd 0.25)));奇怪的事情,当"jl">3时可以正常运行
((= str "1000") (progn(setq jl 1)(setq kd 0.50)));
)
(setq ss (ssget '((0 . "LINE"))))
(setq i -1)
(if (/= ss nil)
(progn
(while (setq s1 (ssname ss (setq i (1+ i))))
(setq s2 (entget s1))
(setq sLayer (cdr (assoc 8 s2)))
(setq po(cdr(assoc 10 s2)))
(setq pe(cdr(assoc 11 s2)))
(setq x1 (car po))
(setq y1 (car(cdr po)))
(setq x2 (car pe))
(setq y2 (car(cdr pe)))
(setq xc(- x2 x1))
(setq yc(- y2 y1))
(if (= 0 xc)(setq jd 1.5707963)
(setq jd (atan(/ yc xc)))
)
(setq jda(+ jd 1.5707963))
(setq pa(polar po jda jl))
(setq jdb(+ jd 4.7123888))
(setq pb(polar po jdb jl))
(setvar "CLAYER" sLayer)
(command "pline" pa "w" kd kd pb "")
);end while
(princ "\转换总个数:")
(princ i)
);end progn
(princ "\n没有找到目标!")
);end if
(princ)
)*-*a |
|