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

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

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

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

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

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

跟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 .....后面跟你想要的操作

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

我还是不太明白,
一般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 & """)" 是两个实体的句柄.
请问大侠们这样编写可以吗?

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

我用如下程序实现了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

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

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