Object学习总结

时间:2024.5.14

实体的插入

1. 在AuToCAD上点一点,加载一个.dwg文件到块参照中。

ads_point pt;

if(acedGetPoint(0, _T(“\n请输入插入点<退出ESC>:”), pt) == RTNORM)

{

MmCreateBlockReference(_T(“c:\\gypdxt.dwg”), asPnt3d(pt)); }

2. 在AuToCAD上点一个点,加载一个.dwg文件到块定义中,返回该块的ID

AcDbObjectID idRecd = MmLoadBlock(_T(“c:\\gypdxt.dwg”)); If(idRecd.isValid)

{

}

3. 将块定义、图形添加到块参照中,返回该对象的ID

AddToCurrentSpace(指针对象)

AcDbObjectId id = AddToCurrentSpace(指针对象)

4. 同类对象之间的赋值,函数-clone()

AcDbBlockReference*pRef=(AcDbBlockReference*)Jig.GetBlkRef()->clone();

实体的获取

1. 在AuToCAD上点击一个实体,获取该实体的ID

Ads_point adspt;

Ads_name entname;

AcDbObjectId entId;

If(acedEntSel(_T(“\n请选择实体或<退出ESC>:”), entname, adspt) != RTNORM)

Return;

acdbGetObjectId(entId, entname);

2. 实体的指针与实体的ID之间的相互转换

AcDbLine* ptLine = new AcDbLine();

AcDbObjectId ptId;

ptId = AddToCurrentSpace(ptLine); //通过指针获取ID

AcDbObjectPointer<实体类> pt(实体ID, AcDb::kForWrite); If(pt.openStatus() == Acad::eOk)

{

}

3. AcDbObjectPointer<AcDbEntity> pt(实体ID, AcDb::kForWrite);

对实体数据的修改(set….) 用AcDb::kForWrite;

对实体数据的获取(get….) 用AcDb::kForRead; Pt.实体类函数 //通过ID获取指针

4. 封装的MmAdsEnt

MmAdsEnt entName;

rbBlk = acutBuildList(RTDXFO, _T(“INSERT”),0); MmAdsRBList

If(MmSelectEntity(_T(“请选择图块<退出>:”),entName,rbBlk) ==RTNORM) 实体的删除

1. 通过实体的ID删除实体

1) AcDbObjectPointer<AcDbEntity> pt(实体ID, AcDb::kForWrite); If(pt.openStatus() == Acad::eOk)

{

}

2)

AcDbEntity* pE;

acdbOpenObject(pE ,实体ID, AcDb::kForWrite, false);

Pt->erase();

1. 通过实体的ID获取实体的数据库类

AcDbEntity* pEn;

acdbOpenObject(pEn, 实体ID, AcDb::读写属性,false);

pEn->实体属性函数;

指针用完记得关闭

pEn->close();

1. 在界面上输入一个值,传回程序

If(acedGetReal(_T(“\n请输入一个数<提示>:”), &变量) ==RTNORM) { }

2. 在界面中对多个或单个实体的操作

MmAdsEnt

MmAdsRBList ent; ----获取单一实体类 rb = acutBuildList(RTDXFO, _T(“INSERT”), 0); -筛选选择的实体 _T(“INSERT”) 你要选择的实体

If(MmSelectEntity(_T(“\n…..”), ent, rb) == RTNORM)

{

}

1. AcDbVoidPtrArray 将实体拆分成N个单独部分,判断该实体与其他实体 的连接情况

2. AcDbExtents 在实体的周围空间中创建一个长方体

3. MmAdsEntSet 封装类,获取实体的集合

4. MmAdsRBList 实体链表封装类

5. AcDbPolyline 多线段实体类

6. AcGeScale3d 3D空间矢量,对实体的x、y、z操作

7. AcDbXline AutoCAD中的XLINE实体类型

1. 两点之间距离的判断

AcGePoint3d pt1,pt2;

Pt1.distanceTo(pt2);

距离为零的判断:

if(EQUAL_ZERO(Pt1.distanceTo(pt2)))

{}

2. 将块参照添加到块表空间

AcDbBlockReference*pRef=(AcDbBlockReference*)Jig.GetBlkRef()->clone();

if(pRef!=NULL)

{

AddToCurrentSpace(pRef);

}

3. 有些函数将传入的参数作为返回值

1) MmAdsEnt entName; MmAdsRBListrbBlk=acutBuildList(RTDXF0,_T("INSERT"),0); if(MmSelectEntity(_T(""),entName,rbBlk)!=RTNORM) return; entName.GetObjectId; 2) AcDbPolyline pEntpl; AcGePoint3d ptStart,ptEnd; pEntpl.getStartPoint(ptStart); pEntpl.getEndPoint(ptEnd);

4. 发送指令到AuToCAD的ObjectARX函数

acedPostCommend(_T(“命令名”));

5. MmGeBSPoint与AcGePoint3d的相互转换

AcGePoint3d pt;

MmGeBSPoint mpt = _PT(pt);

6. AcDbEntity与AcDbObject可以相互转换

AcDbObject Id;

AcDbEntity* pEn = (AcDbEntity*)Id;

反之 Id = pEn->id();

7. AcDbVoidPtrArray类创建对象后要记得释放

AcDbVoidPtrArray ptr;

ReleaseAcDbPtrArray(ptr);

8. MmAdsEntSetssEnt选择集兼容类

MmAdsRBListrb=acutBuildList(RTDXF0,_T("INSERT"),0); if(MmSelectEntities(_T("\n。。"),ssEnt,rb)!=RTNORM) {

return;

}

For(double i = 0;i < ssEnt.GetLength;i++)

{

ssEnt[i] //注意:i为long型

}

9. AcedGetRea获取AuToCAD传进的参数,用法:

Long dScale;

If(acedGetReal(_T(“\n。。”),&dScale) ==RTNORM) {}

10. AcGeScale3d 3D空间矢量 对实体的x、y、z进行操作: AcDbBlockReference pRef;

AcGeScale3d sc = pRef->scaleFactors();

sc.sx* = double; //double倍数

sc.sy* = double;

sc.sz* = double;

pRef->setScaleFactors(sc);

11. 获取点的模板

Ads_Point pt;

If(acedGetPoint(0, _(“\n请输入位置点<退出>:”), pt) != RTNORM)

Return;

acdbUcs2Wcs(pt, pt, false);

AcGePoint3d ptBase = asPnt3d(pt);

12. Ads_point与AcGePoint3d的相互转换

Ads_point -> AcGePoint3d;

pt3d = asPnt3d(pt);

AcGePoint3d -> ads_point

Pt[0] = pt3d[x];

Pt[1] = pt3d[y];

Pt[2] = pt3d[z];

C++ 常识总结

1.指针与引用之间的相互转换

Int *a; Int &b = *a;

Int& a; int* b = &a;

2.MFC添加控件的成员变量问题-未成功解决方案

1)点击控件添加成员变量无反应,检查所属对话框的ID是否在类中链接。

2)显示无法对某一ID添加成员变量,检查该控件的ID是否在添加后为修改,与MFC原库中重复的ID产生冲突即不可添加,例如:你的静态控件的ID为ID_STATIC,即不可添加成员变量。

3.修改控件的字体和大小;

在类的头文件中声明字体类:CFont ft;

在类的实现文件初始化函数中创建字体及大小

ft.CreatePointFont(200, _(“宋体”));

添加到控件中显示

M_Static.SetFont(&ft);

UpdateWindow;


第二篇:学习动态性能表(12)--v$db_object_cache


学习动态性能表

第12篇--V$DB_OBJECT_CACHE 2007.6.4

本视图提供对象在library cache(shared pool)中对象统计,提供比v$librarycache更多的细节,并且常用于找出shared pool中的活动对象。

v$db_object_cache中的常用列:

? OWNER:对象拥有者

?

?

?

?

?

? NAME:对象名称 TYPE:对象类型(如,sequence,procedure,function,package,package body,trigger) KEPT:告知是否对象常驻shared pool(yes/no),有赖于这个对象是否已经利用PL/SQL 过程DBMS_SHARED_POOL.KEEP“保持”(永久固定在内存中) SHARABLE_MEM:共享内存占用 PINS:当前执行对象的session数 LOCKS:当前锁定对象的session数

瞬间状态列:

下列列保持对象自初次加载起的统计信息:

? LOADS:对象被加载次数。

示例:

1.shared pool执行以及内存使用总计

下列查询显示出shared pool内存对不同类别的对象

同时也显示是否有对象通过DBMS_SHARED_POOL.KEEP()过程常驻shared pool。 SELECT type, kept, COUNT(*), SUM(sharable_mem)

FROM V$DB_OBJECT_CACHE

GROUP BY type, kept;

2.通过载入次数找出对象

SELECT owner, name sharable_mem, kept, loads

FROM V$DB_OBJECT_CACHE

WHERE loads > 1 ORDER BY loads DESC;

3.找出使用的内存超过10M并且不在常驻内存的对象。

SELECT owner, name, sharable_mem, kept

FROM V$DB_OBJECT_CACHE

WHERE sharable_mem > 102400 AND kept = 'NO'

ORDER BY sharable_mem DESC;

更多相关推荐:
挂职学习总结发言稿

尊敬的各位领导、各位同仁,大家上午好!20xx年对我来说是难忘的一年,我有幸参加了安泽县中小学校长赴德清挂职学习,实现了多年来就有的江南之旅的梦想,在此我要感谢各级领导给我们创造了这样一个开阔视野,完善自我的机…

自动控制原理学习总结

班级:09自动化2班姓名:朱猛学号:0905071015自动控制原理是自动控制理论的基础,其主要内容包括:自动控制系统的基本组成和结构、自动控制系统的性能指标,自动控制系统的类型(连续、离散、线性、非线性等)及…

教学秘书学习总结

本次培训时间虽然是短暂的,但是使我对教学秘书的职责和定位有了更加深刻、更加全面的认识。从事教学秘书岗位的这几年,没有一个完整的概念,总以为只要做好服务即可。本次学习可以说是一次视野的开阔。教学管理是高等学校教学…

党课学习总结范文

本学期很荣幸能够参加学校的党课学习,也很珍惜这次难得的学习机会。在学习期间,我始终坚持认真听课,课堂上认真作笔记,课后积极参与讨论,在理论和实质上对党的认识有了很大的提高。从党的性质到党的指导思想,从党的根本宗…

商务礼仪学习总结

在竞争日趋激烈的就业形势下,社会产生实践对毕业生职业能力与素质的要求也越来越高,加强商务礼仪基本知识成了我们必修的课程,面对即将走入社会的我,为了提高自己的交际能力,所以这一期我选修了商务礼仪通过这一学期的学习…

商务礼仪学习总结

通过听金正昆老师对商务礼仪的主题讲解,主要体会有以下几点:1、通过这次培训让我深切的体会到学习的重要性,人最大的悲哀是无知,通过学习后知道很多我们在现实生活中习以为常的言行举止、穿着打扮那都是错误的,甚至是闹笑…

学习总结《双赢谈判》20xx年11月10日

学习《双赢谈判》总结通过《双赢谈判》课程的学习,了解了一些谈判的技巧,知道了商务谈判的基本思路和策略,要想真正掌握谈判的技巧,把握谈判的主动权,解决谈判的矛盾点,做到双赢,就必须理论和实践相结合,在实践中学,在…

个人学习总结报告

个人培训学习总报告20xx年X月XX日至X月XX日我有幸参加XXXXXXXX干部培训班20xx20xx年第二期总第六期的培训在XXXXX学院的精心安排下整个培训课程设计科学系统内容丰富形式多样安排紧凑最荣幸的是...

20xx小继教教师个人学习总结

20xx小继教教师个人学习总结本寨小学杨明文通过一年来的学习本人的继续教育取得了较好的成绩现将本年度个人继续教育总结如下通过本学期继续教育培训的学习使我在教育思想教育理论及业务能力等方面受益颇多我深切地认识到为...

20xx中心组个人学习总结

中心组个人学习心得体会一年来本人认真学完了所有规定的篇目通过学习加深了对理论知识的理解和认识自身理论水平和业务素质也得到了提高同时也使自己对新的形势下我们面临的新任务有了更加深刻的认识现就一年来的学习体会总结如...

个人学习及工作总结

一年来我刻苦钻研业务知识努力提高理论知识和业务工作水平遵纪守法努力工作认真完成领导交办的各项工作任务在领导和同志们的关心支持和帮助下我学习和工作等方面取得了新的进步现总结一严于律已自觉加强党性锻炼党性修养和政治...

电力电子学习总结

研1105兖文宇s20xx0326电力电子学习总结在这半年的时间我们在韩老师的带领下将电力电子这门课系统的学习了一下,也可以说是总结。因为很多知识并不是新的,在本科的时候都已经涉及到。通过这半年的学习,不敢说有…

学习总结(2259篇)