 - (defun C:lg (/ pt1 pt2 l p1 p2 P3 P4 P5 P6 K setq old_OS old_CMD)
- ;;保存系统变量设置
- (setq old_OS (getvar "OSMODE")
- old_CMD (getvar "CMDECHO")
- )
-
- (setvar "CMDECHO" 0)
- (command "-osnap" "INT")
- (setq pt1 (getpoint "\n左下角点:"))
- (setq pt2 (getpoint pt1 "\n右下角点:"))
- (setvar "OSMODE" 0)
- (setq p1 (polar pt1 (/ pi 2.0) 400))
- (setq p2 (polar pt2 (/ pi 2.0) 400))
- (setq p3 (polar pt1 (/ pi 2.0) 800))
- (setq p4 (polar pt2 (/ pi 2.0) 800))
- (setq p5 (polar pt1 (/ pi 2.0) 1200))
- (setq p6 (polar pt2 (/ pi 2.0) 1200))
- (command "line" p1 p2 "")
- (command "line" p3 p4 "")
- (command "line" p5 p6 "")
- (command "line" pt2 p6 "")
- (command "line" pt1 p5 "")
- (command "line" pt1 pt2 "")
- (setq k (angle pt1 pt2))
- (setq L (distance pt1 pt2))
- (setq N (/ L 1200))
- (setq I 1)
- (setq P0 Pt1)
- (while (<= i N)
- (setq P1 (polar p0 (/ pi 2.0) 1200))
- (command "line" p0 p1 "")
- (setq p0 (polar p0 k 1200))
- (setq I (+ i 1))
- )
- ;;恢复系统变量设置
- (setvar "CMDECHO" old_CMD)
- (setvar "OSMODE" old_OS)
- (setq *error* olderr)
- (princ)
- )
大家新年好。我写的一个小玩意,竖直线的间距是1200,但当最后的距离大于1200小于2400时,最后的距离就是这个值。这个不是我想要得效果,我的想法是当整个长度不是1200的整数倍时,让竖直线的间距按接近1200的值均分这个长度。请高手完善一下
|