乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 56|回复: 1

打开图形命令

[复制链接]

3

主题

11

帖子

2

银币

初来乍到

Rank: 1

铜币
23
发表于 2014-5-14 18:21:02 | 显示全部楼层 |阅读模式
我有一个小程序,用户可以在所有打开的图形中发出几个命令。
它在AutoCAD到2012版本中已经工作了多年。
在更新制图部门之前,我正在AutoCAD 2015中测试我们的程序。
加载OpenDwgsCmds.lsp后,下面是一个使用它的示例。
命令:ODC
ZOOM E
END
命令甚至可以是需要在所有打开的图形中运行的AutoLISP程序,例如MyCode或(c:MyCode)或(MyCode)。
使用VBA代码中的send命令,OpenDwgsCmd在AutoCAD 2015中不起作用。
Autodesk的一名程序员帮助我编写了代码,他在VBA代码中将“SendCommand”替换为“SendKeys”。
通过用SendKeys替换SendCommand,程序将工作,
但是在它执行命令之前,我必须切换到每个打开的绘图。
我使用Ctrl+Tab切换到每个绘图,但这不是它应该工作的方式。
在以前的AutoCAD版本中,它会在所有打开的图形中自动执行代码。
我附上了我正在处理的代码,看看是否有人可以帮助我。若要测试OpenDwgsCmdsOriginal.dvb,请将其重命名为OpenDwgsCmds.dvb
谢谢,
TerryCadd a . k . a . Terry Miller
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ opendwgscmds . dvb原始版本,带有send command
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Option Explicit
Sub Main()
Dim objDwg As acad document
Dim objAcad As acad applicationapplication
intDwgCnt = 0
strhisdwg = this drawing。objAcad中每个objDwg的全名。文件
如果objAcad。Documents.Item(intDwgCnt)。全名 strThisDwg,然后
objAcad。Documents.Item(intDwgCnt)。激活objDwg。send command "(load " " OpenDwgsCmds . LSP " ")" & vbCr & " OpenDwgsCmds " & vbCr
Else
intThisDwg = intDwgCnt
End If
intDwgCnt = intDwgCnt+1
Next objDwg
objAcad。Documents.Item(intThisDwg)。激活此绘图。send command "(load " " OpenDwgsCmds . LSP " ")" & vbCr & " OpenDwgsCmds " & vbCr
End Sub
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
OpenDwgsCmds . dvb修订版,带有SendKeys
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Public Sub Main()
Dim initial DWG As acad document
Set initial DWG = Application。active document initial DWG。send command "(load " " OpenDwgsCmds . LSP " ")OpenDwgsCmds "
Dim objDwg As acad document
,用于应用程序中的每个objDwg。文件
如果不是objDwg是initialDwg,则
objDwg。activate
do events
SendKeys " {(} load " " OpenDwgsCmds . LSP " " {)} OpenDwgsCmds ",True
do events
End If
Next
initial DWG。激活
结束Sub

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

1

主题

5

帖子

1

银币

初来乍到

Rank: 1

铜币
9
发表于 2014-8-15 13:13:22 | 显示全部楼层
我不熟悉SendCommand以前的参数是什么,但当前(2015)的帮助文件显示参数格式如下:“对象。SendCommand命令“
我认为这可能只是您正在发送的命令的格式。我已经使用这一行通过vba通过命令行重新生成模型空间,所以尝试使用这种格式,看看它是否有帮助:“acaddoc。SendCommand ("RE ")"。(acaddoc基本上就是这个图....我通过Excel VBA运行该程序)引号内的空格就像您在命令行中键入时按enter按钮或空格键一样。如果我知道更多关于LISP的知识,我可以完全重新格式化你的输入字符串,但是恐怕我没有。
祝你好运。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-4-20 18:24 , Processed in 0.479415 second(s), 64 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表