objectarx开发笔记2
更新时间:2024-01-20 10:13:01 阅读量: 教育文库 文档下载
- objectarray推荐度:
- 相关推荐
刷新显示屏幕问题 ........................................................................................................................... 2 自定义实体时添加variable时相关问题 ........................................................................................ 2 用acdbOpenAcDbEntity打开实体后一定要关闭 ......................................................................... 2 WCS到UCS的坐标转换 ............................................................................................................... 2 选择过程中判断用户右键操作 ....................................................................................................... 2 如何实现自定义实体Undo? ......................................................................................................... 3 关于动态拖动的讨论 ....................................................................................................................... 3
刷新显示屏幕问题
有时在程序中修改了实体,比如删除了实体,但在屏幕上没有及时地刷新,这时执行屏幕选取实体函数acedSSGet(),
仍然能够选中原来的实体,明明它们已经删除了,这时怎么办呢,考虑用acedCommand(RTSTR, \
虽然也可以,但它会重新生成整个图形数据库,如果数据量很大,那么重生成的速度会很慢, 这样就不可能在程序的一段循环语句中修改每一个实体后都对数据库重生成,那程序运行的时间大部分都花在刷新数据库上了, 显然这不合理. 解决方法:
// 刷新显示屏幕
actrTransactionManager->flushGraphics(); acedUpdateDisplay();
自定义实体时添加variable时相关问题
问:用ObjectARX2007的Add Member Variable Wizard时出现页面错误怎么办? 答:用vs2005自身的class view中的add variable就可以了。
用acdbOpenAcDbEntity打开实体后一定要关闭
用acdbOpenAcDbEntity打开实体,不管是只读还是编辑方式,操作后都要关闭实体,否则再次打开时只能以只读方式打开。
WCS到UCS的坐标转换
mbp为当前坐标(ads_point mbp),可以以下方法转换为wcs坐标。
struct resbuf wcs, ucs;
wcs.restype = RTSHORT; wcs.resval.rint = 0; ucs.restype = RTSHORT; ucs.resval.rint = 1;
acedTrans(mbp,&ucs,&wcs,0,mbp);
选择过程中判断用户右键操作
观察Acad2002的命令:mledit,这个命令运行后,用户需要选择操作对象,可是这个命令的选择功能有点特殊: 可以判断用户点了右键(等同直接按回车),,如果点了右键(或按回车),程序会退出.
现在有个程序,也要选择一个对象,并且也想实现用户按回车(点击右键)后直接退出,我用的是acedEntSel函数,可是这些函数(包含acedNEntSelP..等.)都只能返回RENORM(正确选中),RTEROR(没有选中),用户按回车(点击右键)也是返回RTERROR请教下这里有没有解决的办法.
int rc=acedEntSel(\a entity:\ switch(rc) {
case RTCAN:
acutPrintf(\canceled.\ break; case RTERROR:
acutPrintf(\selected.\ break; }
如何实现自定义实体Undo?
undo和redo实际上是调用了自定义实体的dwgInFields和dwgOutFields,你必须重载这个函数。而且当你调用修改这个实体属性的函数时,要先调用assertWriteEnabled。
关于动态拖动的讨论
acedgetpoint()针对直线 acedGrRead()针对矩形
如果想实现复杂的拖动变换用AcEdJig类或用AcedDragen函数
我开发一个ARX程序,需动态反馈,需要知道当前光标位置。用acedGrRead时,不能实现OSnap。用acedGetPoint可获得最点及实现OSnap,但不能动态反馈。
使用acedGetPoint函数,同时创建另一线程使用acedGrRead实现动态反馈,确总是AutoCAD崩溃(使用::GetMouseCursor()及鼠标勾子也同样)。
望哪位高手能解我所惑
不知道下面代码对你有没有帮助!!!!
//////////////////////////////////////////////////////////// //动态移动选择集
//////////////////////////////////////////////////////////// //跟踪矩阵(无限制)
int trancematrix(ads_point usrpt,ads_matrix matrix) {
int i,j;
for(i=0;i<=3;i++) for(j=0;j<=3;j++) matrix[i][j]=0,0; for(i=0;i<=3;i++) matrix[i][i]=1.0; matrix[0][T]=usrpt[X];
matrix[1][T]=usrpt[Y]; matrix[2][T]=usrpt[Z]; return RTNORM; }
//函数名:acdbDragSset //功能:动态移动一个选择集 //选择集:ssetname
//移动参照点:referpoint
Acad::ErrorStatus acdbDragSset( ads_name ssetname, AcGePoint3d referpoint ) {
ads_point rtpnt; int status;
status=acedDragGen(ssetname, \请选择一个插入点:\ 0,
trancematrix, rtpnt);
if(status!=RTNORM){
return Acad::eNotImplementedYet; } else{
AcGePoint3d newposition;
newposition.set(rtpnt[X],rtpnt[Y],rtpnt[Z]);
return acdbMoveSset(ssetname,referpoint,newposition); } }
请参考acedDragGen()函数定义
CAD里面用Arx实现拖动的效果:继承AcEdJig类,ARX samples下polysamp中有相关的例子
正在阅读:
objectarx开发笔记201-20
统计学第七章12-22
百度搜索高级技巧05-16
优秀班主任培训心得精选例文8篇08-04
小学四年级语文阶梯阅读训练(精品)06-17
党员干部警示教育片观后感【多篇】05-02
湖南省《盾构隧道壁后注浆无损检测技术规程(征求意见稿)》07-11
第8章SPSS的相关分析 - 图文03-25
村环境综合整治工作计划06-07
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- objectarx
- 笔记
- 开发
- 贯彻落实中央八项规定精神的实施细则
- 土木工程材料练习题
- 《热》作文评讲材料7
- 会计从业资格考试第三章 会计等式与复式记账 讲义
- 《园林绿化工程施工及验收规范》DB11 - T - 212-2009
- 化工自动化控制仪表作业(原版)
- 社工简报1 - 图文
- 基于51单片机控制的智能自动窗的设计 - 图文
- 新课标下高中美术鉴赏教学方法探索
- 安全生产文明施工组织设计
- 物理实验 - 钠光D双线波长差测定
- B建设工程监理质量管理制度
- 2012年4月全国自考《审计学》试题及答案
- 2012届信息工程专业毕业生论文
- 沟通技巧暨讲师培训讲义
- 煤矿安全生产责任制范本(责任清单)(终)
- 肾内科出科考试题
- 金蝶K3与用友U8在存货计量单位设置上的区别 - 图文
- STM32单片机硬件关键基础精华及注意事项 - 图文
- 大学生犯罪案例分析