;拟合圆(返回点表) (defun FitCirclePts (center radius / ai ad rt pt) (setq ai 0.0 ad 10.0) ;度(分割单位) (setq rt '()) (while (<= ai 360.0) (setq pt (polar center (* (/ ai 180.0) pi) radius)) (setq rt (append rt (list pt))) ; (setq ai (+ ai ad)) ); rt ) (defun c:test ( / p0 dd pts it) (setq p0 (getpoint "\n选择中心点:")) (setq dd (getreal "\n半径:")) (setq pts (FitCirclePts p0 dd)) ; (command "pline") (foreach it pts (command it) ) (command "") )
用FitCirclePts返回的点表作CP选择就可以了! |