如上图所示,多段线为基准线
通过不断求大圆和多段线的交点,绘制小圆。
现有代码如下,可是无法实现循环,求大侠指点 - (defun C:qjd(/ pt) ;
- (vl-load-com)
- (setq p1 (getpoint "指定起始点")
- d (getint "\n指定小圆直径")
- dis (getint "\n指定大圆直径 ")
- ent2 (entsel"\n选择参照基准线")
- )
- (Setq aobj2 (Vlax-Ename->Vla-Object (car ent2)))
- (command ".circle" p1 "d" d "")
- (command ".circle" p1 dis "")
- (setq ent1 (entlast))
- (while (> ipts nil)
- (Setq aobj1 (Vlax-Ename->Vla-Object ent1))
- (Setq IPTS (vla-intersectwith aobj1 aobj2 0 )
- IPTS(vlax-variant-value IPTS))
- (setq IPTS (vlax-safearray->list IPTS))
- ;(command ".erase" ent1 "")
- (command ".circle" IPTS "d" d "")
- (command ".circle" IPTS dis "")
- (setq ent1 (entlast))
-
- (princ)
- )
- )
该贴已经同步到 daiguafan的微博 |