[讨论] acad r14 vba
r14的vba中没有sendcommand这个命令不知道大家是如何解决vba中调用lisp命令的?
实用函数中有相关函数
http://www.mjtd.com/function/list.asp?id=366有问题阿!!
我在进行VBA编程时遇到了一问题:在进行绘制弧的程序编写时:
Dim cenpt AS Variant
Dim centerpt() AS Variant
Dim radius AS Double
cenpt=centerpt(p1,p2,p3)
radius=R
set cenpt=ThisDrawing.Modelspace.AddArc(cenpt,radius)
但在运行时出错了,说是 centerpt 和 cenpt 的类型不符,这是怎么一回事阿??
请帮帮忙!!!!!
时间紧阿!!!!
函数和sendkeys一样,不是我需要的结果
代码可以使用,但是和sendkeys没有区别,我的想法是在vba的窗体中调用sendcommand,调用结束后返回,但是这个函数是在窗体关闭后再运行相关的lisp语句可能是我调试有问题,但是程序本身代码也有问题
程序调试通过后,我把成功的代码贴上来我们的软件是R14.01版本上开发的,
我们的软件是R14.01版本上开发的,可是我们一直没有这个,一直用R14来代替,而这个二次开发的软件许多的功能是用VBA开发的,这一部分功能就丢失了,我认为丢失的这部分才是精华.R14.01中文的市场上有,可我们的工作是对日的,要英文的才行,能帮帮我们公司吗?
用mdt3.0
你必须先隐藏窗体才能向ACAD发送命令
隐藏窗体是肯定的,但是没有达到lisp命令完成后才返回vba,程序修改入内
可能你们没有装r14,所有下面的代码才能在r14下运行,有2处修改Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Const WM_COPYDATA = &H4A
Type COPYDATASTRUCTURE
dwData As Long
cbData As Long
lpData As String
End Type
Public Sub SendCommand(CommandString As String)
Dim udtData As COPYDATASTRUCTURE
Dim lngHwnd As Long
udtData.dwData = 1
udtData.lpData = CommandString
udtData.cbData = LenB(CommandString) + 2
lngHwnd = FindWindow(vbNullString, ThisDrawing.Application.Caption)
SendMessage lngHwnd, WM_COPYDATA, 0, udtData
End Sub
看看以下文章试试
在调用一个交互式对话框之后生成VBA执行代码http://www.mjtd.com/a2/list.asp?id=501
页:
[1]