明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1630|回复: 5

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

[复制链接]
发表于 2007-4-24 13:27:00 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2007-4-26 9:54:23 编辑

 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,选取图上对象

发表于 2007-4-24 15:17:00 | 显示全部楼层
恩啊~可怜的孩子~与你共同关注~
发表于 2007-4-25 03:54:00 | 显示全部楼层

你是怎么写的?

1.用了sendcommand就不需要再用LISP的command,而可以直接使用,注意不要括号)

2.注意你的变量要变成字符串。

 楼主| 发表于 2007-4-25 09:35:00 | 显示全部楼层

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

发表于 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)效果比较好。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-26 06:39 , Processed in 0.249867 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表