当前版块:问答社区 > CASS

[CASS二次开发源代码]VB6 ActiveX DLL+Lisp+AutoCAD二次开发环境搭建

Windows10
其他
CASS9

1、运行VB6,新建ActiveX DLL工程。

注: 32AutoCAD二次开发创建ActiveX  DLL工程;64AutoCAD二次开发创建ActiveX EXE工程。


2、点击菜单“工程”->“引用”,找到“AutoCAD 200X Type Libray”。也可以不引用,开发不依赖AutoCAD版本的插件。


3、在类模块Class1中编写代码。

Public Sub Test(ByVal AcadApp As AcadApplication)

    MsgBox AcadApp.Application.ActiveDocument.Name  '显示当前文档名称

End Sub

不依赖AutoCAD版本时编写:

Public Sub Test(ByVal AcadApp As Object)

    MsgBox AcadApp.Application.ActiveDocument.Name  '显示当前文档名称

End Sub


4、点击菜单“文件”->“生成工程1.dll”;64AutoCAD二次开发点击菜单“文件”->“生成工程1.exe”。


5、制作注册DLL以及卸载DLLbat文件。

132AutoCAD二次开发

新建一个文本文档,复制下面的代码,并保存为“注册dll.bat

regsvr32 /s 工程1.dll

新建一个文本文档,复制下面的代码,并保存为“卸载dll.bat

regsvr32 /u /s 工程1.dll

264AutoCAD二次开发

新建一个文本文档,复制下面的代码,并保存为“注册exe.bat

工程1.exe /regserver

新建一个文本文档,复制下面的代码,并保存为“卸载exe.bat

工程1.exe /unregserver

3)双击注册dll.bat”,64AutoCAD以管理员身份运行“注册exe.bat”,注册类。


6、制作lisp调用文件

新建文本文档,复制下面的代码,并保存为“Test.lsp”。

(defun c:Test( / rndobj)

  (vl-load-com)

  (setq rndobj (vlax-get-or-create-object "工程1.Class1"))

  (vlax-invoke-method rndobj "Test" (vlax-get-acad-object))

  (vlax-release-object rndobj)

  (princ)

)


7AutoCAD加载 “Test.lsp”文件,命令行键入“test”命令,即可执行。


8、也可以使用VB6创建AutoCAD菜单、AutoCAD工具栏、窗体等,注意创建含窗体命令时注意AcadApplication对象的传递。64AutoCAD二次开发执行含窗体命令时可能会出现窗体在AutoCAD软件后面,点击一下AutoCAD软件即可。


9、使用VB6 ActiveX DLL/EXE配合Lisp脚本解决了VBA二次开发“源代码保密”的问题,同时也解决了使用VB6直接开发“只能操作第一个AutoCAD实例”的问题。

全部评论

等级:LV30
积分:380
子非鱼 2019-11-04 16:29
小白报道
回复 0
1
提交
悬赏回复规则
1、悬赏期为24小时,从发布时间起算;
2、悬赏期内提问者如设置评论为“精选评论”,视为悬赏结束,该精选评论人将获得本题全部悬赏积分;
3、悬赏期内如提问者未设置“精选评论”,则前5位评论者平分悬赏积分(如仅有一位评论,该评论者获得50%悬赏积分);
4、悬赏积分会自动发放到生态圈账户中,请留意站内信通知。
知道了

距离打开宝箱还剩7

是否花费200积分补签?
确认
取消