Java 以跨平台深受大家喜欢,而由于它跨平台的目的,需要运行在java虚拟机上工作,使得它和本地机器各种内部联系变得很少,约束了它直接掉本地API的功能。本例采用VB代码生成调用AutoCAD接口的DLL文件,使用Jacob技术用Java调用DLL文件来实现Java对AutoCAD接口的调用。

软件环境:VB6.0,Jacob1.16,Eclipse3.7.2,AutoCAD 2007,win7 64。
Jacob程序及本文源码:http://pan.baidu.com/s/1nvJATUL

1,使用VB6.0创建一个DLL项目(ActiveX DLL),取名为“JavaForCad”,
2,加入此工程对AutoCAD的引用:点击VB的工程菜单→引用,勾选AutoCAD 2007 Type Library点确定。

3,编写调用AutoCAD接口的代码,具体VB代码如下:

Dim acadApp As AcadApplication
Dim acadDoc As AcadDocument
' 连接AutoCAD的方法
Sub ConnCad()On Error Resume Next' 获取AutoCAD对象赋值给acadAppSet acadApp = GetObject(, "AutoCAD.Application")If Err ThenErr.ClearSet acadApp = CreateObject("AutoCAD.Application")If Err ThenMsgBox Err.DescriptionExit SubEnd IfEnd If' 显示AutoCAD窗口acadApp.Visible = True
End Sub
' 调用AutoCAD接口画圆的方法
Sub DrawCircle()Set acadDoc = acadApp.ActiveDocumentDim circleObj As AcadCircleDim centerPoint(0 To 2) As DoubleDim radius As DoublecenterPoint(0) = 100#: centerPoint(1) = 100#: centerPoint(2) = 0#radius = 100#Set circleObj = acadDoc.ModelSpace.AddCircle(centerPoint, radius)
End Sub

4,生成对应的DLL文件
点击VB菜单的文件→生成JavaForCad.dll

5,注册“JavaForCad.dll”文件,在cmd窗口里执行命令“Regsvr32 C:\JavaForCad.dll”

6,搭建Jacob运行环境,将“jacob-1.16-M1-x86.dll”和“jacob-1.16-M1-x64.dll”对应放入System32和SysWOW64文件夹下。(“jacob-1.16-M1.zip”里有DLL文件)

7,创建Java项目,引入Jacob的jar包“Jacob.jar”(“jacob-1.16-M1.zip”压缩包里有)

8,编写Java代码

        ComThread.InitSTA();// 启动线程// 以下两种方式都能取得DLL文件对象// clsid值可通过在注册表中搜索"JavaForCad"取得// ActiveXComponent com = new// ActiveXComponent("clsid:3E1A16AB-D456-48EB-A943-A8C8633BF78D") ;// "JavaForCad"对应DLL文件名,"Class1"对应VB项目中类模块名称ActiveXComponent com = new ActiveXComponent("JavaForCad.Class1");// Dispatch对象看成是对Activex控件的一个操作Dispatch disp = com.getObject();// 调用DLL文件中的连接AutoCAD方法Dispatch.call(disp, "ConnCad");// 调用DLL文件中的画圆方法Dispatch.call(disp, "DrawCircle");ComThread.Release();// 结束进程

9,先启动AutoCAD后运行Java代码即可间接通过Java代码调用AutoCAD接口进行画圆操作。

转载于:https://my.oschina.net/u/3430229/blog/890126

Java基于VB通过Jacob调用AutoCAD接口相关推荐

  1. vb外部调用autocad_Java基于VB通过Jacob调用AutoCAD接口

    Java 以跨平台深受大家喜欢,而由于它跨平台的目的,需要运行在java虚拟机上工作,使得它和本地机器各种内部联系变得很少,约束了它直接掉本地API的功能.本例采用VB代码生成调用AutoCAD接口的 ...

  2. NLP之Chatgpt:基于openai框架通过调用API接口实现Chatgpt的吊炸天功能的图文教程(基于python代码实现)、案例应用之详细攻略

    NLP之Chatgpt:基于openai框架通过调用API接口实现Chatgpt的吊炸天功能的图文教程(基于python代码实现).案例应用之详细攻略 导读:2023年1月30日版本更新,以下是最新消 ...

  3. 基于Springboot整合RestTemplate调用Webservice接口

    1.基于Springboot整合RestTemplate调用Webservice接口,如果感觉使用webservice客户端调用服务器端不会,或者不方便 的时候,可以尝试使用RestTemplate来 ...

  4. 通过Jacob调用AutoCAD绘图的Demo示例

    在一次项目开发中需要将Java生成的曲线导出图片和CAD,图片已经搞定,网上查了下Java调用AutoCAD绘图的资料和demo很少,于是自己根据官网提供的VBA调用AutoCAD绘图的文档,通过Ja ...

  5. java byte数组转string_Java调用C++接口(初步了解)

    (最近听到同事说了一下java调c++接口的事,于是就有点想了解下,然后就各种查资料记录下自己的简单实现过程,环境windows) 1.有java基础的都可以啦,新建一个类,如下(很简单~) pack ...

  6. java wsdl xfire_Java使用XFire调用WebService接口

    服务端(为客户端提供Webservice接口): 使用工具:myeclipse-8.5-win32,apache-tomcat6.0 开发步骤: 1.创建工程 File->New->Web ...

  7. 获取java返回的数据_java调用第三方接口,获取接口返回的数据。

    java接收远程调用的数据,得到的是如上个数的返回内容,我怎么写才能获取到值,现在使用的请求方法如下: public static HttpResult postJsonData(String url ...

  8. java使用sapi_JAVA 使用Jacob调用windows的Sapi实现文本转语音文件

    1. 配置Jacob:我这里使用的jacob为jacob-1.18,jacob-1.18下载下来之后,解压缩文件, 里面的文件为docs.jacob.jar.jacob-1.18-x64.dll.ja ...

  9. java rtmp_搭建rtmp直播流服务之2:使用java实现ffmpeg命令接口化调用(用java执行ffmpeg命令)...

    一.环境搭建 1.安装ffmpeg 下载对应系统的ffmpeg安装包,个人采用windows平台进行开发,所以安装了windows版本(各平台ffmpeg命令都是一样的,无须纠结) 2.ffmpeg的 ...

最新文章

  1. 想让关系更好就不要怕麻烦
  2. python pcl学习入门
  3. 还是畅通工程(1233 并查集+kruskal)
  4. 基于区块链的健康链系统设计与实现(2)区块链平台Web服务器
  5. [转]利用ASP.NET 2.0创建自定义Web控件(1)
  6. u大侠pe系统桌面计算机,详解各种PE启动的过程
  7. 使用javaMail收邮件 支持附件下载
  8. log4j2自动删除_登录样式:log4j 2,上下文,自动清除…全部不附带任何字符串!...
  9. asp.net关于如何准许api跨域访问
  10. git常用操作命令大全
  11. 关于配置两台无线路由器
  12. discuz常用操作说明
  13. 微信英文名是WeChat,那么你知道微信小程序的英文名吗?
  14. 二乘二(二阶)魔方教程,看完教程拼不出来我给你钱!
  15. 华为手机8.0.0怎么找到云相册_华为手机里的相册照片删除了怎么找回?
  16. html onload不起作用,body标签onLoad执行无效,为何?
  17. 如何使用DD-WRT增强Wi-Fi网络信号并增加范围
  18. android的虚拟机
  19. 科技公司产品专利申请介绍
  20. 进不去chatgpt来加入新必应new bing吧,怎么申请newbing,出错了怎么解决

热门文章

  1. 8k分辨率需要多大带宽_一帧1920*1080的画面有多少比特,需要多大带宽观看是才不会卡顿?...
  2. 【在线OJ项目】项目环境与项目演示
  3. java_project项目相关操作(一)
  4. android odex文件权限定制
  5. 职场感悟-努力与回报与个人价值
  6. 参加训练营的心得体会
  7. DELPHI利用WMI获取CPU参数
  8. 别再眼高手低了! 这些Linq方法都清楚地掌握了吗?
  9. 参加亚马逊云科技 BugBust 全球竞赛,与顶级开发者角逐!
  10. 《开源公开课分享》:Java开源框架案例视频分享