tkodwang 发表于 2007-4-24 13:27:00

[求助]关于vba中使用command问题,急

THISDRAWING.SendCommand "(command ""leader"" pause pause ""F"" ""N"" ""A"" """" ""b"" ""1.dwg"" ""s"" ""1"" pause """" """" pause )" & vbCr

大家请看上面那句vba代码,这句话就是画一个引线,引线的注释不是文字而是一个块——1.dwg,上面这句话运行是没错的,但是我想把其中的""1"",也就是缩放比例换成xscale,他是一个变量,再此句前赋值为1,好象就不能用了。各位大虾帮忙啊。
直接用sendcommand不能实现中途puase,选取图上对象

jiangmolhm 发表于 2007-4-24 15:17:00

恩啊~可怜的孩子~与你共同关注~

mccad 发表于 2007-4-25 03:54:00

你是怎么写的?
1.用了sendcommand就不需要再用LISP的command,而可以直接使用,注意不要括号)
2.注意你的变量要变成字符串。

tkodwang 发表于 2007-4-25 09:35:00

直接用sendcommand不能实现中途puase,从而选取图上对象吧

dianbotang 发表于 2008-10-27 02:26:00

楼主的问题可否这样解决?
xyz = 1 '比例
ThisDrawing.SendCommand "(setq xyz " & xyz & ")" & vbCr
ThisDrawing.SendCommand "(command ""leader"" pause pause ""F"" ""N"" ""A"" """" ""b"" ""1.dwg"" ""s"" xyz pause """" )" & vbCr
不使用command的话也可以这样做:
Sub leader()
pt1 = ThisDrawing.Utility.GetPoint(, "指定引线起点")
pt2 = ThisDrawing.Utility.GetPoint(pt1, "指定下一点")
pt0 = ThisDrawing.Utility.GetPoint(, "指定插入点")
lsppt1 = axPoint2lspPoint(pt1)
lsppt2 = axPoint2lspPoint(pt2)
lsppt0 = axPoint2lspPoint(pt0)

xyz = 1 '比例

ThisDrawing.SendCommand "leader" & vbCr & lsppt1 & vbCr & lsppt2 & vbCr & "F" & vbCr & "N" & vbCr & "A" & vbCr & vbCr & "b" & vbCr & "1.dwg" & vbCr & "s" & vbCr & xyz & vbCr & lsppt0 & vbCr & vbCr
End Sub
Public Function axPoint2lspPoint(ByVal Pnt As Variant) As String
    axPoint2lspPoint = Pnt(0) & "," & Pnt(1) & "," & Pnt(2)
End Function

兰州人 发表于 2008-10-30 13:23:00

chr(34) 可以代替"",用"(command .. )" & chr(34) "pause" & chr(34)效果比较好。
页: [1]
查看完整版本: [求助]关于vba中使用command问题,急