在java中实现 AutoCAD api

因为在项目中需要从autoCAD 的dwg文件中提取标题框中的属性插入到数据库中实现图纸的批量入库.

一开始在网上搜索这方面的资料,其中有一些控件可以脱离autoCAD系统提取的,但都是要收费的.比如openDwg是用的比较多的.但是要交费成为会员才能使用.于是想自己分析DWG的文件格式,然后自己写个控件出来.找到了DWG文件格式说明.一看,吓一跳,如此的复杂,自己写是不现实的.

只好找其他的门路了.后来知道了ActiveX Automation,可以通过 ActiveX Automation操作AUTOCAD,进而提取DWG文件的信息.于是用VB写了个控件,在客户端调用.但在javascript中调用需要数字签名,自己用其他工具生成的证书问题多多,不能为ActiveX控件进行签名,只好放弃.

但是这种方式也不能脱离AUTOCAD Application.感觉这样的话怪怪的,整个系统都要被AUTOCAD Application牵绊,脱离不了ms的windows.后来经过分析,其实自己的思路被java牵绊着,老是排斥ms的东西.而客户他们使用的是AUTOCAD,他只能在ms的windows上运行,并且客户的服务器也是ms的.这样的话服务端的开发使用.net或java都可以,但客户选择了后者.这样的话就可以在服务器端同过java调用AUTOCAD的api控制AUTOCAD Application操作DWG了.

现在的设想是:系统中client将DWG文件上传至server,在server上取得DWG中的信息,然后返回给客户端.
于是在servlet中利用jacob调用ActiveX组件操作.问题出现了,每个client的请求都会打开一个Application,这样将占用大量的系统资源.受到数据库连接池的启发,可将AUTOCAD Application看作是一个数据库,在系统启动是打开,以后client的每个请求就是一个连接,用完后关闭.

这还只是初步的设想.具体的利用jacob进行调用.虽然在AUTOCAD的网站中搜索到可以用java进行二次开发,不过好象是针对ms的j++.所以只好通过jacob来调用ActionX了.由于利用jacob来实现调用需要输入大量的参数.所以对api还需要进一步的封装.

时间: 2024-08-19 00:41:13

在java中实现 AutoCAD api的相关文章

java 中的反射API 暑假第十天

 java 中的反射API   反射API 当我们在开发Debugger的时候用到  反射API可以获得一个类的内部构造  定义的成员 方法 构造函数 ... java.lang.reflect.*  必须导入因为java.lang会自动导入但是 子包却不会    这个包中有一堆类  如 Method  Field  Construction类 等等 java.lang.Class  中的函数可以获得 这些类的数组  例如getDeclaredFields() 返回声明的 所有 变量的一个Fie

Java中利用Reflection API优化代码

摘要 开发者通过各种各样的方法来尝试避免单调冗余的编程.一些编程的规则例如继承.多态或者设计模型可以帮助开发者避免产生多余的代码.不过由于软件开发方面存在着不确定性,因此这些规则并不能消除代码维护和重新编写的需要.在很多时候维护都是不可避免的,只有不能运作的软件才是从不需要维护的.不过,这篇文章介绍了你可以使用Java的Reflection API的功能来减少单调的代码编写,并可以使用活动的代码产生来克服reflection的限制. 数据配置(由外部的源头得到数据并且将它装载到一个Java对象中

Java中关于XML的API惊鸿一瞥

xml 简单介绍一下Java关于xml的API,这样大家看到了缩写就知道是干什么的了.水平有限,多多包涵. 1.JAXP(Java API for XML Parsing) 2.JAXB(Java API for XML Binding) 3.JAXM(Java API for XML Messaging) 4.JAX-RPC(Java API for XML-RPC) 1.JAXP定义了在Java中使用DOM, SAX, XSLT的通用的接口.这样在你的程序中你只要使用这些通用的接口,当你需要

callmanagerwrapper-android 4.4 API 19中,内部API中为何缺少部分JAVA类如CallStateMonitor?

问题描述 android 4.4 API 19中,内部API中为何缺少部分JAVA类如CallStateMonitor? 官方下载的SDK,缺少部分JAVA类:CallStateMonitor,CallManagerWrapper,CallNotifier等 目前在研究android的来电流程,在跟踪来电响铃事件的过程中,跟踪到类 CallManager.registerForIncomingRing方法,查找整个SDK源代码,没有发现调用注册这个事件方法的地方,在网上查询,说是CallMana

java接口-java中api即application program interface和interface有和区别和联系

问题描述 java中api即application program interface和interface有和区别和联系 java中api即application program interface和interface有和区别和联系 应用程序接口和接口有什么区别和联系 解决方案 api说的是你的系统提供给别的系统调用的方式和约定,是一个比较大的概念. interface说的是java语法上的接口.是一个比较小的概念.

jav语音验证码-大家请问java中语音验证码实现的原理是什么?用到API或者框架是什么?如果实现的?

问题描述 大家请问java中语音验证码实现的原理是什么?用到API或者框架是什么?如果实现的? java中语音验证码实现的原理是什么?用到API或者框架是什么?如果实现的? 还有语音读验证码,大体是怎么做的?求指点 我在网上没找到比较详细的资料

Java中StringBuilder字符串类型的操作方法及API整理_java

0.StringBuilder类型简介StringBuilder类型是一个可变的字符串类型,StringBuilder类型的API与StringBuffer类型的API基本一致,唯一的区别是StringBuilder的使用假设在单一线程中,换句话说,StringBuilder是线程不安全的.StringBuilder在实例化的时候,通常也会默认设定一个容量大小,一般为字符串参数的长度+16.StringBuilder是继承AbstractStringBuilder这个抽象类的,而这个抽象类的内部

Java中的Calendar日历API用法完全解析_java

第一部分 Calendar介绍Calendar 定义: public abstract class Calendar implements Serializable, Cloneable, Comparable<Calendar> {} Calendar 可以看作是一个抽象类. 它的实现,采用了设计模式中的工厂方法.表现在:当我们获取Calendar实例时,Calendar会根据传入的参数来返回相应的Calendar对象.获取Calendar实例,有以下两种方式: (1) 当我们通过 Cale

Java中使用Preferences 的 API设置用户偏好_java

Preferences的中文意思即偏好或喜好的意思,也就是说同一个程序在每次运行完后,可以通过Preferences来记录用户的偏好,下次启动时,程序会利用这些信息来了解用户的喜好.而这些信息个人理解应该就是存储在系统的注册表中. 下面我们来学习一下Java中的Preferences的API; 概述: 本文将介绍自jdk1.4版本后可用的java的Preferences. Java的Preferences API提供系统的方法来处理用户和系统的偏好及数据配置, 例如.保存用户设置,记住一个文本框