什么版本?
我用的2010,面板图标中,在画圆的左面有个画圆弧的图标,你找找你那版本有没有?
然后里面有一种圆弧的画法:
已知起点、终点、半径,可以画出一个圆弧。
方法:
1)先点击起点
2)再点击终点
3)鼠标往外拉一下,直到看到虚线圆弧出现
4)手动输入半径值
这样就能画出经过这两点的唯一的一个已知半径的圆弧(当然,反一面不算)你的意思是知道圆弧弧长,角度,要把它在cad里面画出来。cad2008一下没有这功能,可以考虑用二次开发。在其他软件里面,有约束功能可以解决。cad2010有约束功能,但不知道有没有标注圆弧长度的功能。你可以试一试。可以用试的办法来找这个值
方法如下:
1先画一个竖线长度是弧的高度
2过竖线底部端点画一水平线
画长一点
3画一弧
过竖线上部端点
另一点在水平线上
4这个时候你在属性中可以看到这条弧的长度
5
水平方向拖动弧的一个端点(在水平线上的那一侧的点)
6观察属性中
弧的长度
(注意这里是你说的弧长的一半长度)
直到你满意为止,找到圆心了吧,这就好办了,呵呵(defun c:aaa (/ p1 p2 s a l x xx fx flx r c c1 c2 mspace myobj) (defun N () (setq c (- (+ a ( 05 pi)) ( x 05))) (setq cen (polar p1 c r)) (setq c1 (+ c pi)) (setq c2 (+ c1 x)) (setq myobj (vla-addarc mspace (vlax-3d-point cen) r c1 c2)) (princ) ) (setq p1 (getpoint "\n请输入圆弧第一点:")) (setq p2 (getpoint p1 "\n请输入圆弧第二点:")) (setq s (getdist p1 "\n请输入弧长:")) (setq a (angle p1 p2)) (setq l (distance p1 p2)) (vl-load-com) (setq mspace (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object)) ) ) (if (<= s l) (progn (prompt "您所要画的圆弧并不存在!") (princ) ) (progn (setq x 2) (setq fx (- (/ (sin (/ x 2)) x) (/ ( 05 l) s))) (setq flx (/ (- ( 05 x (cos ( 05 x))) (sin ( 05 x))) ( x x)) ) (setq xx (- x (/ fx flx))) (while (> (abs (- x xx)) 00000000001) (setq x xx) (setq fx (- (/ (sin (/ x 2)) x) (/ ( 05 l) s))) (setq flx (/ (- ( 05 x (cos ( 05 x))) (sin ( 05 x))) ( x x)) ) (setq xx (- x (/ fx flx))) ) (setq r (/ s xx)) (initget "N S") (setq aa (getkword "\n 请输入圆弧方向[逆时针(N)/顺时针(S)]<N>:")) (if (= aa nil) (setq aa "N") ) (if (= aa "N") (N) (if (= aa "S") (progn (setq c (- (+ a (/ x 2)) ( 05 pi))) (setq cen (polar p1 c r)) (setq c1 (- (+ c pi) x)) (setq c2 (+ c pi)) (setq myobj (vla-addarc mspace (vlax-3d-point cen) r c1 c2)) (princ) )
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)