找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 6647|回复: 13

[越飞越高讲堂] ARX2015中AcGs类的一些变化

[复制链接]

已领礼包: 8121个

财富等级: 富甲天下

发表于 2014-12-2 10:12:48 | 显示全部楼层 |阅读模式

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

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

×
这两天正在编译一个工程,正好用到了AcGs的一些类,于是知道了如下的一些事情:
ARX2015中AcGs类的一些变化:
1、AcGsGraphicsKernel替换掉了AcGsClassFactory 类。创建它需要用另外一个函数acquireGraphicsKernel,如下:
AcGsKernelDescriptor descriptor;
descriptor.addRequirement(AcGsKernelDescriptor::k3DDrawing);
AcGsGraphicsKernel *pGraphicsKernel =
AcGsManager::acquireGraphicsKernel(descriptor);
AcGsDevice *offDevice = pGraphicsKernel->createOffScreenDevice();

2、AcGsManager的一些函数也相应地发生了变化:
譬如getGSClassFactory不再存在,已经被上面所说的替代。
createAutoCADDevice函数现在有两个参数,
createAutoCADDevice         (AcGsGraphicsKernel &, HWND hWnd)
第一个参数就是上面提到的AcGsGraphicsKernel类。
新增函数在帮助中已经说明。


3、RenderMode 被废弃,改用visual style
以前的AcGsView的setMode 函数应该用 setVisualStyle
AcGsView *                mpView;
...
mpView->setVisualStyle(AcGiVisualStyle::k2DWireframe);
//mpView->setMode(AcGsView::kWireframe);   不对!
AcGiCisualStyle提供了32种显示方式,远远超出以前的显示模式的数量。具体用法请参考其相应的include文件。


4、编译中的错误纠正:
error LNK2001: unresolved external symbol "__declspec(dllimport) public: static class AcGsGraphicsKernel * __cdecl AcGsManager::acquireGraphicsKernel
当出现这个错误的时候,请在库的依赖项中添加:AcDrawBridge.lib即可。


可参考如下链接:
http://adndevblog.typepad.com/autocad/2014/04/graphic-changes-in-autocad-2015.html


论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 40个

财富等级: 招财进宝

发表于 2014-12-2 10:26:20 | 显示全部楼层
这个类主要做什么的,能给讲讲吗,高飞版主。

点评

这个是一个很重要的类,控制着CAD的图形系统输入输出和配置。 Gs 就是graphics system. 例如,图形的显示,图形的视觉样式等等。  详情 回复 发表于 2014-12-2 10:45
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 8121个

财富等级: 富甲天下

 楼主| 发表于 2014-12-2 10:45:02 | 显示全部楼层
newer 发表于 2014-12-2 10:26
这个类主要做什么的,能给讲讲吗,高飞版主。

这个是一个很重要的类,控制着CAD的图形系统输入输出和配置。
Gs  就是graphics system.
例如,图形的显示,图形的视觉样式等等。

点评

能不生成实体的情况下,把实体给绘制出来吗?想GRDRAW,矢量绘制实体。  详情 回复 发表于 2014-12-2 11:05
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2014-12-2 11:05:07 | 显示全部楼层
Highflybird 发表于 2014-12-2 10:45
这个是一个很重要的类,控制着CAD的图形系统输入输出和配置。
Gs  就是graphics system.
例如,图形的 ...

能不生成实体的情况下,把实体给绘制出来吗?想GRDRAW,矢量绘制实体。

点评

当然可以,参考samples里面的blockview那个例子。绘制的实体只是用于显示,而不加入到图形库中。  详情 回复 发表于 2014-12-2 11:14
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 8121个

财富等级: 富甲天下

 楼主| 发表于 2014-12-2 11:14:03 | 显示全部楼层
newer 发表于 2014-12-2 11:05
能不生成实体的情况下,把实体给绘制出来吗?想GRDRAW,矢量绘制实体。

当然可以,参考samples里面的blockview那个例子。绘制的实体只是用于显示,而不加入到图形库中。

点评

那实体亮显(包括块内实体)是不是也可以实现了?高飞版主能给写个例子吗?  详情 回复 发表于 2014-12-2 11:29
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2014-12-2 11:29:39 | 显示全部楼层
Highflybird 发表于 2014-12-2 11:14
当然可以,参考samples里面的blockview那个例子。绘制的实体只是用于显示,而不加入到图形库中。

那实体亮显(包括块内实体)是不是也可以实现了?高飞版主能给写个例子吗?

点评

什么样的亮显实体?不太明白。  详情 回复 发表于 2014-12-2 11:31
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 8121个

财富等级: 富甲天下

 楼主| 发表于 2014-12-2 11:31:32 | 显示全部楼层
newer 发表于 2014-12-2 11:29
那实体亮显(包括块内实体)是不是也可以实现了?高飞版主能给写个例子吗?

什么样的亮显实体?不太明白。

点评

就是 REDRAW E 3, 能不能把块内的实体也能单独的亮显? 绘制下实体应该就是那个效果吧?  详情 回复 发表于 2014-12-2 11:37
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2014-12-2 11:37:27 | 显示全部楼层
Highflybird 发表于 2014-12-2 11:31
什么样的亮显实体?不太明白。

就是 REDRAW E 3, 能不能把块内的实体也能单独的亮显? 绘制下实体应该就是那个效果吧?

点评

你说的这个似乎与AcGs类无关?我不能确定。  详情 回复 发表于 2014-12-2 11:48
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 8121个

财富等级: 富甲天下

 楼主| 发表于 2014-12-2 11:48:24 | 显示全部楼层
newer 发表于 2014-12-2 11:37
就是 REDRAW E 3, 能不能把块内的实体也能单独的亮显? 绘制下实体应该就是那个效果吧?

你说的这个似乎与AcGs类无关?我不能确定。

点评

按你说的,这个实体绘制出来后,REDRAW是可以抹除的吧?  详情 回复 发表于 2014-12-2 12:09
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2014-12-2 12:09:22 | 显示全部楼层
Highflybird 发表于 2014-12-2 11:48
你说的这个似乎与AcGs类无关?我不能确定。

按你说的,这个实体绘制出来后,REDRAW是可以抹除的吧?

点评

我是应用在自己的创建的一个窗口上,如果是CAD的窗口类型,我不知道是不是可以从AcDbViewportTableRecord这个类中得到AcGsView后进行操作。有待实验。  详情 回复 发表于 2014-12-2 12:34
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 8121个

财富等级: 富甲天下

 楼主| 发表于 2014-12-2 12:34:26 | 显示全部楼层
newer 发表于 2014-12-2 12:09
按你说的,这个实体绘制出来后,REDRAW是可以抹除的吧?

我是应用在自己的创建的一个窗口上,如果是CAD的窗口类型,我不知道是不是可以从AcDbViewportTableRecord这个类中得到AcGsView后进行操作。有待实验。

点评

就你说的问题,感觉应该从AcGiViewportDraw类入手。不妨参考objectarx samples里面的 inputpoint里面的例子。 如filter.cpp里面的代码: pDrawContext->geometry().circle( newPoint, 0.1, AcGeVector3d::kZAxis )  详情 回复 发表于 2014-12-2 12:39
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 8121个

财富等级: 富甲天下

 楼主| 发表于 2014-12-2 12:39:09 | 显示全部楼层
Highflybird 发表于 2014-12-2 12:34
我是应用在自己的创建的一个窗口上,如果是CAD的窗口类型,我不知道是不是可以从AcDbViewportTableRecord ...

就你说的问题,感觉应该从AcGiViewportDraw类入手。不妨参考objectarx samples里面的 inputpoint里面的例子。
如filter.cpp里面的代码:
pDrawContext->geometry().circle( newPoint, 0.1, AcGeVector3d::kZAxis );
就是创建一个circle,而不是实体。  

点评

那创建文字呢? ARX只会看不会写,高飞版主能不能给写代码测试下呢,把基本实体用向量在屏幕上画出来。  详情 回复 发表于 2014-12-2 14:28
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2014-12-2 14:28:19 | 显示全部楼层
Highflybird 发表于 2014-12-2 12:39
就你说的问题,感觉应该从AcGiViewportDraw类入手。不妨参考objectarx samples里面的 inputpoint里面的例 ...

那创建文字呢? ARX只会看不会写,高飞版主能不能给写代码测试下呢,把基本实体用向量在屏幕上画出来。

点评

filter.cpp就是个例子啊,关于其方法用指针调用的时候就会自动显示出来。  详情 回复 发表于 2014-12-2 17:40
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 8121个

财富等级: 富甲天下

 楼主| 发表于 2014-12-2 17:40:01 | 显示全部楼层
newer 发表于 2014-12-2 14:28
那创建文字呢? ARX只会看不会写,高飞版主能不能给写代码测试下呢,把基本实体用向量在屏幕上画出来。

filter.cpp就是个例子啊,关于其它方法用指针调用的时候就会自动显示出来。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-15 11:45 , Processed in 0.299203 second(s), 68 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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