ObjectARX学习笔记

一、AutoCAD APIs支持

1,ObjectARX
2,.NET Managed API
3,COM Automation (VB, Java, Delphi, etc.)
4,AutoLISP

二次开发编程主要采用ObjectARX)和RealDWG,其中ObjectARX是免费的,RealDWG是收费的。

(http://www.autodesk.com/objectarx,

http://usa.autodesk.com/adsk/servlet/index?siteID=123112&id=770257)

 

API架构

 

 

二、ObjectARX

1,ObjectARX是什么?

     AutoCAD Runtime eXtension

 

    • A DLL plug-in model
    • A set of Object Oriented C++ libraries
    • A framework

 

2,ObjectARX能做什么?

 

  • Modify and extend the drawing database
    • Create/modify/erase objects
    • Create new types of objects
  • Modify AutoCAD’s user interface
    • Commands
    • Toolbars/dialogs
    • Properties Window
    • Design Center
    • Display system
  • Monitor/Modify AutoCAD’s standard behavior
    • Event notifications
    • Input point acquisition

3,.ARX = .DLL + 2 exported functions 

 

  • acrxEntryPoint
  • acrxGetApiVersion

 

三、ObjectARX架构

 

AcDbDatabase 结构体系

 

 

Block Table:

 

 

三个默认的记录:*MODEL_SPACE, *PAPER_SPACE, *PAPER_SPACE0

实体只有添加到上述三个记录中才能在AutoCAD中显示。

 

AcRxObject  (在 rxobject.h 中定义) 

  • cast down-cast pointer safely
  • isA get class descriptor
  • isKindOf is object derived from?
  1. AcDbEntity *ent;
  2. if (ent->isKindOf( AcDbLine::desc()))
  3. {
  4.     AcDbLine *line = AcDbLine::cast(ent);
  5.     //do something with line->startPoint()…
  6. }

四、AutoCAD图形数据库

 

此条目发表在ObjectArx分类目录。将固定链接加入收藏夹。

发表评论