一、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
本文详细介绍了AutoCAD的二次开发工具和技术,包括ObjectARX、.NET Managed API等APIs的支持方式,重点讲解了ObjectARX的功能和实现原理,如修改和扩展绘图数据库、创建/修改/删除对象及新的对象类型等。
2064

被折叠的 条评论
为什么被折叠?



