能不能不启动AutoCAD就执行命令?或者××××
能不能不启动AutoCAD就执行ARX(VBA,AutoLISP)命令?或者在启动了AutoCAD的情况下通过外部调用什么命令执行ARX(VBA,AutoLISP)?意思就是不用手工appload,再在命令行中键入命令来执行程序ARX(VBA,AutoLISP)?谢谢 搜搜吧,有4种以上的方法可以做到 本帖最后由 作者 于 2003-9-16 9:09:26 编辑谢谢,请你告之(当然我也会去搜搜,就是没有结果)我的意思是不用自动加载arx的,而是通过外面命令,不如在dos下,linux下无人就可以执行绘图。明白吗? 有知道CAD远程控制的吗?我想通过命令来控制远程的一台CAD(AutoCAD2004)服务器绘图,怎么做?比如传递一些参数给一些命令(用ARX写的)
不是修改组册表,修改CAD启动文件(LISP调用,启动ARX等等) 说详细点 详细说明:
楼上的楼上的意思是:怎么用外部命令去触发CAD绘图?比如我在远程服务器上发出一个绘图请求,而绘图要用到ARX程序(可以在Autocad启动是加载),cad如何接收完成这个请求?
现在修改如下:
ARX程序每隔一个时间段去查询一下数据库服务器(Linux),看有没有绘图请求(绘图请求是存放在一个表中),如果还有请求没有完成,那就根据绘图请求取出相应的数据进行绘图,然后把绘图结果(.dwg文件)存放到文件服务器(Linux)上去。
问题一: 怎么写代码,每隔一个时间段去查询数据库?然后触发绘图事件?有现成的代码吗?
问题二: ARX程序是不是在启动Auto CAD2004是加载就可以完成以上功能?如果不能,那么要怎么做?
问题三: 绘图结果(.dwg文件)存放到文件服务器(Linux)上在ARX中调用saveas()可以吗?
说明:操作系统除 Cad服务器是Windows XP外,其他可能是Linux或其他。 程序是ARX 1) 你要用到计时器,查我的编程日记,有关于计时器的.
2)我不知道你具体的工况,如果AutoCAD一直开着,定时去查数据库并自动画图,当然容易.
你只要搞清楚如何查数据库就可以了.
3)启动Auto CAD2004时当然可以启动计时器
4)saveas 可以用.
=======不知道来龙去脉,也不知道你的思路是不是合理.
问题二: ARX程序是不是在启动Auto CAD2004是加载就可以完成以上功能?如果不能,那么要怎么做?
问题三: 绘图结果(.dwg文件)存放到文件服务器(Linux)上在ARX中调用saveas()可以吗? 本帖最后由 作者 于 2003-9-17 18:06:36 编辑
首先谢谢goldenshin的回复!
下面我把我的思路说一下:
1.客户端(Linux服务器)发出绘图请求(Java 脚本),传递绘图参数给AutoCAD2004服务器(Windows XP);
2.AutoCAD2004服务器有一个监听进程,监听客户端的绘图请求,并接收绘图参数;
3.监听进程将请求列队,并根据先到先服务的原则,触发AutoCAD绘图,AutoCAD根据监听进程的绘图请求参数查询数据库,取出数据绘图。同时,监听进程等待绘图完成。AutoCAD绘图完成,保存图纸,传递完成消息给监听进程,并将数据库绘图请求表的状态标志改为completed,否则改为error。监听进程接收绘图完成信息,删除已完成的绘图请求,并触发下一个绘图请求。
4.如果在一定的时间内AutoCAD没有接收到绘图请求,即没有进行绘图,就主动去查询绘图请求数据库表,如果有没有完成的,就完成之。(这里要用到你的记时器)
5.客户端取回图纸(如果AutoCAD能把图纸直接存到客户端更好)。
问题:
1.我怎么查询不到你的计时器?如何查询?
2.怎么写监听程序?
3.AutoCAD如何和监听进程之间传递消息?
4.监听进程如何触发AutoCAD进行绘图?
说明:AutoCAD一直是启动的,并在启动是就加载了绘图的ARX程序。
********************** 修改一 09-17 17:54 **********************
以上是我原来的想法,很麻烦!
先修改如下:
1.AutoCAD2004启动,并加载ARX程序;
2.ARX程序初始化连接数据库;
3.查询数据库中有没有没有完成的请求,如有,则完成;
4.如果没有数据库中没有没完成的请求,则arx程序没隔一个时间片就去查询数据库,重复第3步;
说明:
1.以上除了启动都是自动的(启动也可以自动)。
问题:
1.如何使这个ARX程序从开始就一直运行下去?因为要不断查询数据库(因为如果在ARX里写在一个时间片一直循环,那
这个命令就不能停了,AutoCAD就不能做别的事了,对吗?)
2.如果该成外部有一个监听程序接收到请求,然后启动AutoCAD绘图,那么这要怎么解决?一个外部程序怎么和AutoCAD
进行通信?我的意思是外部程序怎么用AutoCAD的命令?即可以调用AutoCAD命令。
不知道您有什么好的方法? 本帖最后由 作者 于 2003-9-18 10:20:20 编辑
>>>1.客户端(Linux服务器)发出绘图请求(Java 脚本),传递绘图参数给AutoCAD2004服务器(Windows XP);
既然要AutoCAD去查数据库,就不要传递绘图参数给AutoCAD2004,只要传递绘图命令就可以,AutoCAD接到命令就可以去查绘图参数.
>>>>2.AutoCAD2004服务器有一个监听进程,监听客户端的绘图请求,并接收绘图参数;
如上,不要接收绘图参数,只接收绘图请求
>>>>>3.监听进程将请求列队,并根据先到先服务的原则,触发AutoCAD绘图,AutoCAD根据监听进程的绘图请求参数查询数据库,取出数据绘图。同时,监听进程等待绘图完成。AutoCAD绘图完成,保存图纸,传递完成消息给监听进程,并将数据库绘图请求表的状态标志改为completed,否则改为error。监听进程接收绘图完成信息,删除已完成的绘图请求,并触发下一个绘图请求。
使用Socket收发消息是一种方式,肯定可以成功,在你的思路中,要互为服务器,建议给Linux设个参数,当AutoCAD发来准备好的消息了,才向AutoCAD发绘图请求,否则等待AutoCAD发来准备好了的消息.
>>5.客户端取回图纸(如果AutoCAD能把图纸直接存到客户端更好)。
文件存到哪里,是个文件操作的问题,与AutoCAD本身无关.
>>>1.我怎么查询不到你的计时器?如何查询?
?????????//?我记得我写过计时器的, 不见了????
>>>2.怎么写监听程序?
这个嘛,你自己先研究一下,不懂的地方再发帖
>>>>3.AutoCAD如何和监听进程之间传递消息?
>>>>4.监听进程如何触发AutoCAD进行绘图?
两台机器之间的消息传递,可以不在AutoCAD中写,先用VB写好成DLL,再在ARX里调用,如果不熟,还是直接在Arx中写好些.
监听进程就在Arx中,不存在如何触发AutoCAD的问题. 等你做完这个,希望你能来当版主,呵,
页:
[1]
2