chenyaqiou 发表于 2007-10-8 14:04:00

[菜鸟求助]谁能告诉我SENDCOMMAND命令的详细用法

<p>要用VBA调用cad中对多段线进行修改的命令pedit,可不知如何使用SENDCOMMAND进行调用.</p><p>最好能给些资料的链接地址</p>

英雄无敌 发表于 2007-10-8 17:21:00

<p>sendcommand就跟你在命令行输入命令是一样的</p><p>如你所说,只要.sendcommand "pedit "即可</p>

phonexi 发表于 2007-10-8 17:22:00

<p>跟lsp的command一样,后面就是跟一堆参数</p><p>使用这个命令对屏幕实体操作,一般需要利用选择集的setlast模式</p><p>lsp方式就是</p><p>ThisDrawing.SendCommand "SETQ S1 (ENTLAST)" &amp; vbCr &amp; "pedit" &amp; vbCr &amp; "M" &amp; vbCr &amp; "P" &amp; vbCr &amp; vbCr .....后面跟你想要的操作</p><p>注意这里要求所操作的多义线是entlast</p><p>vba方式就是创建一个选择集,使用zcSelectionSetLast模式,选择你需要的多义线,在使用下面语句</p><p>ThisDrawing.SendCommand&nbsp;"pedit" &amp; vbCr &amp; "M" &amp; vbCr &amp; "P" &amp; vbCr &amp; vbCr .....后面跟你想要的操作</p><p></p>

chenyaqiou 发表于 2007-10-10 05:53:00

<p>我还是不太明白,</p><p>一般AUTOCAD命令后要么是输入参数,要么是选择实体,如果输入参数怎么在SENDCOMMAND 命令中实现?</p><p>我要的那个命令PEDIT 操作过程是先输入参数M,再选择需要编辑的多段线,最后回车即可,请问SENDCOMMAND命令怎么编写?</p><p>我试试看THISDRAWING.SENDCOMMAND"PEDIT"VbCr"M"VbCr"(handent """ &amp; EntObj1.Handle &amp; """)" &amp; vbCr&nbsp;&amp; vbCr &amp; "(handent """ _&amp; EntObj2.Handle &amp; """)" &amp; vbCr &amp; vbCr</p><p>其中"(handent """ &amp; EntObj1.Handle &amp; """)" &amp; vbCr&nbsp; &amp; vbCr &amp; "(handent """ &amp; EntObj2.Handle &amp; """)" 是两个实体的句柄.</p><p></p><p>请问大侠们这样编写可以吗?</p><p></p>

chenyaqiou 发表于 2007-10-10 06:08:00

<p>我用如下程序实现了sendcommand"pedit"</p><p>可现在还是有个新的问题,就是如何将编辑后的多段线赋给一个实体变量?是不是编辑后的实体还存在于EntObj1中?</p><p>Private Sub CommandButton1_Click()<br/>Me.Hide</p><p>&nbsp;&nbsp;&nbsp;&nbsp; Dim EntObj1 As AcadEntity<br/>&nbsp;&nbsp;&nbsp;&nbsp; Dim EntObj2 As AcadEntity<br/>&nbsp;&nbsp;&nbsp;&nbsp; Dim obj3 As AcadEntity<br/>&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp; Dim pPt As Variant<br/>&nbsp;&nbsp;&nbsp;&nbsp; Dim pPt1(0 To 2) As Double<br/>&nbsp;&nbsp;&nbsp;&nbsp; Dim pPt2(0 To 2) As Double<br/>&nbsp;&nbsp;&nbsp;&nbsp; pPt1(0) = 107317<br/>&nbsp;&nbsp;&nbsp;&nbsp; pPt1(1) = 73676<br/>&nbsp;&nbsp;&nbsp;&nbsp; pPt2(0) = 107463<br/>&nbsp;&nbsp;&nbsp;&nbsp; pPt2(1) = 73680<br/>&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp; Err.Clear<br/>&nbsp;&nbsp;&nbsp; On Error Resume Next<br/>&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp; ThisDrawing.Utility.GetEntity EntObj1, pPt, ""<br/>&nbsp;&nbsp;&nbsp;&nbsp; ' 亮显<br/>&nbsp;&nbsp;&nbsp;&nbsp; EntObj1.Highlight True<br/>&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp; ' 执行内部Trim命令,handent 通过句柄获取Lisp中的对象(实体)名称。<br/>&nbsp;&nbsp;&nbsp;&nbsp; ThisDrawing.SendCommand "pedit" &amp; vbCr &amp; "(handent """ &amp; EntObj1.Handle &amp; """)" &amp; vbCr _<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &amp; "f" &amp; vbCr<br/>&nbsp;&nbsp;&nbsp;&nbsp; ' 当前视图重生成<br/>&nbsp;&nbsp;&nbsp;&nbsp; ThisDrawing.Regen acActiveViewport<br/>&nbsp;&nbsp;&nbsp;&nbsp; Me.Show<br/>End Sub</p>

chenyaqiou 发表于 2007-10-10 06:10:00

谢谢,我做出来了,确实存在于EntObj1中.
页: [1]
查看完整版本: [菜鸟求助]谁能告诉我SENDCOMMAND命令的详细用法