一、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能做什么?
3,.ARX = .DLL + 2 exported functions
- 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
- acrxEntryPoint
- acrxGetApiVersion
三、ObjectARX架构
AcDbDatabase 结构体系
Block Table:
AcRxObject (在 rxobject.h 中定义)三个默认的记录:*MODEL_SPACE, *PAPER_SPACE, *PAPER_SPACE0
实体只有添加到上述三个记录中才能在AutoCAD中显示。
- cast down-cast pointer safely
- isA get class descriptor
- isKindOf is object derived from?
AcDbEntity *ent; if (ent->isKindOf( AcDbLine::desc())) { AcDbLine *line = AcDbLine::cast(ent); //do something with line->startPoint()... }
四、AutoCAD图形数据库
m