❶ CAD里面怎么把圆弧合并成圆,而且数量太大,尽量方便快捷
如果由圆弧构成一个整圆,要合并为圆的话,测试版本AutoCAD2016版本,快捷键【J】可以合并为圆。
如果圆弧不规范,AutoCAD合并不了,需要用autolisp来解决,一个小插件就可以。
从图上看,这个圆弧是开口的,那么应当是【圆弧变为圆】不是你说的【圆弧合并为圆】。
提供两个小插件autolisp来解决你的问题。代码如下:
;=====以下是圆弧合并为圆========================================
(defunC:tes(/&dis1&dis2&k1&k2&kw1&ob1&ob2&r1&r2&ss1&tc1&xx1il1l2pt1pt2);圆弧合并
(if(nullvlax-mp-object)(vl-load-com))
(if(setq&kw1(ssget'((0."ARC"))));1
(progn;;1
(while(setq&k1(ssname&kw10))
(setq&kw1(ssdel&k1&kw1))
(if(=&kw1nil)(setq&kw1(ssadd)))
(setq&ob1(vlax-ename->vla-object&k1))
(setq&dis1(vlax-curve-getDistAtParam&ob1(vlax-curve-getEndParam&ob1)));长度
(setq&tc1(vla-get-layer&ob1));图层
(setq&xx1(vla-get-Linetype&ob1));线型
(setq&r1(vla-get-Radius&ob1));半径
(setqpt1(Vlax-SafeArray->List(Vlax-Variant-Value(vla-get-Center&ob1))));取得圆心
(setqL1(*pi2&r1));周长
(if(>L150)(setqL21)(setqL2(*L10.01)));圆心允许误差值1
(setqi0&ss1'()&ss1(cons&k1&ss1))
(repeat(sslength&kw1)
(setq&k2(ssname&kw1i)i(1+i))
(setq&ob2(vlax-ename->vla-object&k2))
(setq&dis2(vlax-curve-getDistAtParam&ob2(vlax-curve-getEndParam&ob2)));长度
(setq&r2(vla-get-Radius&ob2));半径
(setqpt2(Vlax-SafeArray->List(Vlax-Variant-Value(vla-get-Center&ob2))));取得圆心
(if(and(<=(distancept1pt2)L2)(=&r1&r2));2如果圆心坐标相同半径相同
(progn;;2
(setq&dis1(+&dis2&dis1))
(setq&ss1(cons&k2&ss1))
);progn;2
);if;2
);repeat
(if(<=(abs(-&dis1L1))L2);如果长度符合圆的条件,就合并
(progn
(setqi0)
(if(=&kw1nil)(setq&kw1(ssadd)))
(repeat(length&ss1)
(setq&k2(nthi&ss1)i(1+i))
(setq&kw1(ssadd&k2&kw1)&kw1(ssdel&k2&kw1))
(entdel&k2)
);repeat
(entmake(list'(0."CIRCLE")(cons8&tc1)'(62.1)(cons6&xx1)(cons10pt1)(cons40&r1)))
)
)
);while
);progn;1
);if;1
(prin1)
);;复制到记事本,以【.lsp】为后缀命名,打开CAD,autolisp加载,命令【TES】
;===========以下程序是圆弧变圆===========================
(defunC:tes1(/&k1&kw1&ob1&r1&tc1&xx1pt1);圆弧变圆
(if(nullvlax-mp-object)(vl-load-com))
(if(setq&kw1(ssget'((0."ARC"))));1
(progn;;1
(while(setq&k1(ssname&kw10))
(setq&kw1(ssdel&k1&kw1))
(setq&ob1(vlax-ename->vla-object&k1))
(setq&tc1(vla-get-layer&ob1));图层
(setq&xx1(vla-get-Linetype&ob1));线型
(setq&r1(vla-get-Radius&ob1));半径
(setqpt1(Vlax-SafeArray->List(Vlax-Variant-Value(vla-get-Center&ob1))));取得圆心
(vla-delete&ob1)
(entmake(list'(0."CIRCLE")(cons8&tc1)'(62.1)(cons6&xx1)(cons10pt1)(cons40&r1)))
);while
);progn;1
)
(prin1)
);;复制到记事本,以【.lsp】为后缀命名,打开CAD,autolisp加载,命令【TES1】
;为了显示合并,合并后的对象颜色为红色
❷ 我在CAD中F命令中之前设置过圆成弧现在怎样改成圆直角
输入F 确认,激活倒圆角命令
再输入R 确认,提示输入圆角的,这时候输入0,即圆角值为0,就是直角
然后选择要倒直角的线条就行.