找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 564|回复: 5

[求助]:arx调用的老问题!!

[复制链接]
发表于 2003-8-15 15:20:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
看了以前的帖子还是不清楚。
请问再arx中如何实现对另一个arx程序的调用?
arx中如何实现对lisp,何vba的调用?
有例子么?
新手麻烦您说仔细些了
谢谢!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 145个

财富等级: 日进斗金

发表于 2003-8-15 15:26:06 | 显示全部楼层

Re: [求助]:arx调用的老问题!!

最初由 ssh 发布
[B]看了以前的帖子还是不清楚。
请问再arx中如何实现对另一个arx程序的调用?
arx中如何实现对lisp,何vba的调用?
有例子么?
新手麻烦您说仔细些了
谢谢!! [/B]


一个简单的方法是你发送字符串到命令行,让LISP执行load,arxload函数调用LISP和ARX文件。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-8-15 16:17:23 | 显示全部楼层
谢谢xd!!
另外还有一个,就是利用dll的调用怎么调用?没找到例子,看了以前的帖子可是不明白怎么做。能给个例子或给出稍仔细些的步骤么?
谢谢先!
为什么我把事先要调用的arx程序装载了,然后运行主arx程序利用acedCommand调用,却说命令不存在呢?怎么回事啊?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-8-16 15:40:59 | 显示全部楼层
arx的调用可以使用acedArxLoad实现,至于lisp的只能使用发送load命令到命令行。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2003-8-16 15:56:01 | 显示全部楼层
最初由 ssh 发布
[B]谢谢xd!!
另外还有一个,就是利用dll的调用怎么调用?没找到例子,看了以前的帖子可是不明白怎么做。能给个例子或给出稍仔细些的步骤么?
谢谢先!
为什么我把事先要调用的arx程序装载了,然后运行主arx程序利用a... [/B]


1、加载DLL和ARX是一样的,ARX本身就是一个DLL,可以用:

在ARX加载的时候,也就是在:
extern "C" AcRx::AppRetCode acrxEntryPoint(AcRx::AppMsgCode msg, void* pkt) 函数里面,调用另外的ARX或者DLL,可以用如:
  1. [font=courier]
  2. if (!acrxClassDictionary->at("AcBrEntity"))  //判断AcBr15.dll 是否加载
  3.          acrxDynamicLinker->loadModule("acbr15.dll", 1);
  4. [/font]
复制代码


普通的可以用:
int nRet=acrxLoadModule("wipeout.arx", Adesk::kFalse, TRUE);

等。

2、不知道你是如何定义命令的,只有定义成放入COMAND STACK里面的命令才可以用command 调用。如果你用ads_defun定义的c:格式的命令,不能使用command。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-8-20 19:31:36 | 显示全部楼层
if (!acrxClassDictionary->at("AcBrEntity"))  //判断AcBr15.dll 是否加载
         acrxDynamicLinker->loadModule("acbr15.dll", 1);
或int nRet=acrxLoadModule("wipeout.arx", Adesk::kFalse, TRUE);这样
就可以在主arx中之间调用acbr15(x,y,z....)和wipeout(x,y,z......)了么?
还有几个很菜的问题:
利用wizard的CMD定义有参数的ARX,只需选择acedDefun()就可以了么?参数怎么定义?
User acedRegDefun()什么作用?
谢谢!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-14 13:55 , Processed in 0.323669 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表