找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1798|回复: 4

[求助] 请教关于Mac下ObjectARX的问题。

[复制链接]
发表于 2018-7-14 12:49:53 | 显示全部楼层 |阅读模式

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

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

×

最近刚开始接触ObjcectARX。由于是用的mac os,所以用的xcode环境。一开始写一些简单的命令,都测试成功。现在开始尝试利用cocoa建立命令集,将自己的命令集中在自定义面板里,并进行交互。
然而这时遇到一个比较奇怪的问题,始终解决不了,甚至不知道问题出在哪儿。
窗口类用的OC,方便和C++混编。
当尝试为一个按键绑定命令时,出了问题。像这样,只是一个简单的文字输出到cad,没问题。可以顺利运行。
[Actionscript3] 纯文本查看 复制代码
- (IBAction)test2:(id)sender
{
    acutPrintf(L"\n怎么不行呢?");
}

但是这样,在cad里运行却会导致cad崩溃:

[Actionscript3] 纯文本查看 复制代码
- (IBAction)test:(id)sender
{
    DB_test::Test1();
}

[C++] 纯文本查看 复制代码
void DB_test::Test1()
{
    AcGePoint3d ptStart(0, 0, 0);
    AcGePoint3d ptEnd(100, 100, 0);
    AcDbObjectId lineId;
    lineId = DB_CreateEnt::CreateLine(ptStart, ptEnd);
    DB_ModifyEnt::ChangeColor(lineId, 1);
    DB_ModifyEnt::ChangeLayer(lineId, _T("虚线"));
    DB_ModifyEnt::ChangeLinetype(lineId, _T("中心线"));
}

并且这段代码如果是通过注册的命令执行,却能顺利完成,没有问题。

由于OC我也是刚接触,实在不知道这是哪儿的问题。。。还请知道的大神指点一下。
另外,如果有同样在进行mac版objectarx开发的,希望能一起交流。毕竟这方面网上的资料太少了。搞起来实在困难。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 40个

财富等级: 招财进宝

发表于 2018-7-14 13:26:02 | 显示全部楼层
不用MAC,
其实OBJECTARX无非就是C++的库,你很多问题可能还是MAC下从C++的问题,和ARX库应该问题不大。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-7-14 15:01:55 | 显示全部楼层
newer 发表于 2018-7-14 13:26
不用MAC,
其实OBJECTARX无非就是C++的库,你很多问题可能还是MAC下从C++的问题,和ARX库应该问题不大。

是的。本身的实现代码通过注册命令通过是没问题的。
就是通过IBAction执行就卡死。而像acutPrintf这样的又能顺利运行。
所以就搞不懂到底哪儿出问题了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-7-14 23:58:52 | 显示全部楼层
大概发现问题的所在了。我改写了把图元放到数据库的方法。加了错误返回。发现没有成功放进去。
是因为在UI窗口执行命令,无法定位到图纸空间,所以出错。
我通过acDocManager->lockDocument(acDocManager->curDocument());锁定文件只能画出一个图元,随后整个程序都失效,不再能画出了。
而且我试图用一个全局变量保存curDoc()再调用,也不行。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2020-10-24 23:19:32 | 显示全部楼层
mac帖子好少。希望找到一个交流平台。
原则上是要锁定文档才能打开数据库的。
我就没出现卡死的问题。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-24 04:14 , Processed in 0.194272 second(s), 36 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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