[菜鸟求助]谁能告诉我SENDCOMMAND命令的详细用法
<p>要用VBA调用cad中对多段线进行修改的命令pedit,可不知如何使用SENDCOMMAND进行调用.</p><p>最好能给些资料的链接地址</p> <p>sendcommand就跟你在命令行输入命令是一样的</p><p>如你所说,只要.sendcommand "pedit "即可</p> <p>跟lsp的command一样,后面就是跟一堆参数</p><p>使用这个命令对屏幕实体操作,一般需要利用选择集的setlast模式</p><p>lsp方式就是</p><p>ThisDrawing.SendCommand "SETQ S1 (ENTLAST)" & vbCr & "pedit" & vbCr & "M" & vbCr & "P" & vbCr & vbCr .....后面跟你想要的操作</p><p>注意这里要求所操作的多义线是entlast</p><p>vba方式就是创建一个选择集,使用zcSelectionSetLast模式,选择你需要的多义线,在使用下面语句</p><p>ThisDrawing.SendCommand "pedit" & vbCr & "M" & vbCr & "P" & vbCr & vbCr .....后面跟你想要的操作</p><p></p> <p>我还是不太明白,</p><p>一般AUTOCAD命令后要么是输入参数,要么是选择实体,如果输入参数怎么在SENDCOMMAND 命令中实现?</p><p>我要的那个命令PEDIT 操作过程是先输入参数M,再选择需要编辑的多段线,最后回车即可,请问SENDCOMMAND命令怎么编写?</p><p>我试试看THISDRAWING.SENDCOMMAND"PEDIT"VbCr"M"VbCr"(handent """ & EntObj1.Handle & """)" & vbCr & vbCr & "(handent """ _& EntObj2.Handle & """)" & vbCr & vbCr</p><p>其中"(handent """ & EntObj1.Handle & """)" & vbCr & vbCr & "(handent """ & EntObj2.Handle & """)" 是两个实体的句柄.</p><p></p><p>请问大侠们这样编写可以吗?</p><p></p> <p>我用如下程序实现了sendcommand"pedit"</p><p>可现在还是有个新的问题,就是如何将编辑后的多段线赋给一个实体变量?是不是编辑后的实体还存在于EntObj1中?</p><p>Private Sub CommandButton1_Click()<br/>Me.Hide</p><p> Dim EntObj1 As AcadEntity<br/> Dim EntObj2 As AcadEntity<br/> Dim obj3 As AcadEntity<br/> <br/> Dim pPt As Variant<br/> Dim pPt1(0 To 2) As Double<br/> Dim pPt2(0 To 2) As Double<br/> pPt1(0) = 107317<br/> pPt1(1) = 73676<br/> pPt2(0) = 107463<br/> pPt2(1) = 73680<br/> <br/> Err.Clear<br/> On Error Resume Next<br/> <br/> ThisDrawing.Utility.GetEntity EntObj1, pPt, ""<br/> ' 亮显<br/> EntObj1.Highlight True<br/> <br/> ' 执行内部Trim命令,handent 通过句柄获取Lisp中的对象(实体)名称。<br/> ThisDrawing.SendCommand "pedit" & vbCr & "(handent """ & EntObj1.Handle & """)" & vbCr _<br/> & "f" & vbCr<br/> ' 当前视图重生成<br/> ThisDrawing.Regen acActiveViewport<br/> Me.Show<br/>End Sub</p> 谢谢,我做出来了,确实存在于EntObj1中.
页:
[1]