自贡黄明儒
发表于 2014-12-28 20:36:48
llsheng_73 发表于 2014-12-28 06:16
原多线段有弧倒好办,问题是接着画的时候需要画弧弄起才麻烦
我的看法与你正相反,要不你搞前半截,我搞后半截?
llsheng_73
发表于 2014-12-30 15:50:47
自贡黄明儒 发表于 2014-12-28 20:36 static/image/common/back.gif
我的看法与你正相反,要不你搞前半截,我搞后半截?
(defun C:y(/ e p a)
(if(and(setq e(car(entsel "\n选择多线段接着画")))
(setq e(vlax-ename->vla-object e))
(=(vla-get-objectname e)"AcDbPolyline"))
(while(setq P(getpoint(vlax-curve-getendpoint e)"\n指定新顶点: "))
(vlax-invoke e'ADDVERTEX(1+(vlax-curve-getendparam e))(mapcar'+'(0 0)(trans P 1 0)))
)
)
)
自贡黄明儒
发表于 2014-12-30 18:11:12
llsheng_73 发表于 2014-12-30 15:50
简单的办法把两条线连接起来,这样后来画的线就可带弧了,我想
狂刀lxx
发表于 2015-1-4 02:38:57
直接画后面部分,再把前面部分 peditjoin 不行么?
自贡黄明儒
发表于 2015-1-4 08:08:24
狂刀lxx 发表于 2015-1-4 02:38 static/image/common/back.gif
直接画后面部分,再把前面部分 peditjoin 不行么?
我也这想法,但有一个问题,输入U不能退;输入C不能形成封闭
狂刀lxx
发表于 2015-1-4 10:47:22
c倒是可以解决,就是u回前面那条多义线就只能用模拟重新“画”的办法了
llsheng_73
发表于 2015-1-8 18:10:35
本帖最后由 llsheng_73 于 2015-1-8 18:14 编辑
这个最头痛的的怎么做到象命令PL那样那样默认下一点的情况下允许输入U,C,A,L等选项,这个解决了,别的应该都可以解决,最好再加个换向的选项,这样可以更随意的在原有多线段上接着画
77077
发表于 2015-7-16 17:17:49
llsheng_73 发表于 2014-12-30 15:50 static/image/common/back.gif
不错不错,不过能不能改一下,不一定只是在屁股上加点,从头上去加呢,从肚子上区添加呢?
(entsel "\n选择多线段接着画")的时候,顺便判断一下被选中的是第一段还是最后一段或者是中间段,然后。。。。
llsheng_73
发表于 2015-7-24 01:05:32
77077 发表于 2015-7-16 17:17 static/image/common/back.gif
不错不错,不过能不能改一下,不一定只是在屁股上加点,从头上去加呢,从肚子上区添加呢?
(entsel "\n选 ...
(defun C:y(/ e p a);;;多线段任意位置加点,据测试结果比CASS的Y命令好使
(if(and(setq e(car(entsel "\n选择要加点的多线段")))
(sssetfirst nil (ssadd e))
(setq e(vlax-ename->vla-object e))
(=(vla-get-objectname e)"AcDbPolyline"))
(while(setq P(getpoint "\n指定新顶点: "))
(setq P(trans P 1 0)
a(vlax-curve-getparamatpoint e(vlax-curve-getclosestpointto e p)))
(vlax-invoke e'ADDVERTEX(if(> a 0)(1+(fix a))a)(mapcar'+'(0 0)p))))
(sssetfirst nil))
llsheng_73
发表于 2015-7-24 01:09:09
狂刀lxx 发表于 2015-1-4 10:47 static/image/common/back.gif
c倒是可以解决,就是u回前面那条多义线就只能用模拟重新“画”的办法了
按说U可以用removevertex方法删除最后一个,把引线起点改到删除最后一点后的最后一点