本帖最后由 lxg3443 于 2015-12-21 14:29 编辑
初学lisp,好多都不懂。
希望各位前辈看一看是什么问题,帮忙优化和修改一下。
在已经画好的图纸中来做等分的时候是可以用的(有时候也不行),但是在新建的DWG中会等分不了(等分间隔不起作用?)
我自己觉得可能得需要设置UCS,但是这方面我一点都不懂,而且工作当中从来用不到ucs....
请各位多多关照。
成功:
命令失败:
- (defun C:tt (/ xyp1 xyp2 xp2 yp2 xleng angx angy yleng $*YM* $*Y01* Y01 xypN)
- (setq xyp1 (getpoint "\n指定左下角第一点: "))
- (setq xyp2 (getcorner xyp1 "\n请点另一角点:"))
- (setq xp2(list (car xyp2)(cadr xyp1) 0.0))
- (setq yp2 (list (car xyp1)(cadr xyp2) 0.0))
- (setq xleng (distance xyp1 xp2))
- (setq angx (angle xyp1 xp2))
- (setq angy (/ pi 2))
- (setq yleng(distance xyp1 yp2))
- (setq $*YM*(getint "\n输入需要等分的分数:"))
- (setq $*Y01*(getint "\n输入需要等分的间隔距离:"))
- (setq Y01 (1+ $*YM*));
- (setq YMLeng (/ (- yleng (* $*Y01* Y01)) $*YM*))
- (vl-cmdf"_.RECTANG" xyp1 xyp2)
- (setq xypN xyp1)
- (repeat $*YM*
- (setq xypN (polar xypN angy $*Y01*))
- (vl-cmdf"_.line" (polar xypN angx xleng) xypN "" )
- (setq xypN(polar xypN angy YMLeng))
- (vl-cmdf"_.line" (polar xypN angx xleng) xypN "" )
- )
- (princ)
- )
|