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