Home  • Newsroom  • Resellers  • Careers  • Contact Us
 
About Us Product Lifecycle Management Outsourcing Products Knowledge Center
Customizing AutoCADŽ using ObjectARX - White Paper, CAD Software Customization CAD Software, CAD Drawings, CAD & Graphics Solutions AutoCAD Drawing Viewer, CAD Viewer & Mark-up Application CAD Viewer With AutoCAD 2004 Support
Customizing AutoCADŽ using ObjectARX - White Paper, CAD Software Customization, CAD Software
   White Papers
CAD Drawings, CAD & Graphics Solutions, AutoCAD Drawing Viewer, CAD Viewer & Mark-up Application, CAD Viewer With AutoCAD 2004 Support

AutoCAD Drawings on the Web

Index

Introduction
AutoCADŽ is a general-purpose CAD software package used by a variety of professionals in their every day activities - to design, develop, create, build, and manufacture. No two professionals work in the same way. Therefore AutoCADŽ has to be customizable so that it can meet the requirements of a particular domain or an individual professional. Of the range of customization options provided on AutoCADŽ, ObjectARX is the most powerful and advanced.

Autodesk has made the base AutoCADŽ as flexible as possible so that third party developers can extend the capabilities of AutoCADŽ to specific Domains. Today there are about 2,300 third party developers working on AutoCADŽ and allied products to provide industry specific solutions for variety of domains.

Customization Options in AutoCADŽ
AutoCADŽ has open architecture, which can be customized and extended. As a result, it is possible to expand and shape AutoCADŽ according to individual needs.

Apart from the basic customization, AutoCADŽ provides programming interfaces, such as AutoLISP, ADS, ADS-RX and ObjectARX. AutoLISP was the first API exposed by Autodesk to customize AutoCADŽ. ObjectARX is a new C++ environment exposed by Autodesk, which provides an object-oriented application-programming interface. ObjectARX was introduced in Release 14 (1997). This virtually opens up the internals of AutoCADŽ to build applications in AutoCADŽ. Using ObjectARX libraries, application developers can take advantage of AutoCADŽ's open architecture, directly access AutoCADŽ database structures, the graphics system, define native commands and get notified on specific AutoCADŽ events.

Though ObjectARX is a complete environment, it does not provide certain functionalities, like entity selection, selection set manipulation, data acquisition, AutoCADŽ utility requests (geometric space transforms or to use AutoCADŽ commands), etc. Here a new style ADS programming that is a subsystem of ObjectARX, called ADS-RX, is used. ADS-RX is functionally identical to the standard C ADS library.

Applications typically run faster in the ObjectARX environment than in the ADS or AutoLISP, especially those that communicate frequently with AutoCADŽ. ADS programs result in a separate EXE or an EXP that is invoked from AutoCADŽ. An ObjectARX application, on the other hand, is a DLL that shares AutoCADŽ's address space and makes direct function calls to AutoCADŽ, avoiding the costly performance and system overhead of inter-process communication (IPC) calls. At the same time as ObjectARX applications shares the same address space with AutoCADŽ, the possibilities of crashing AutoCADŽ is higher if the ObjectARX application does not handle exceptions properly. AutoLISP routines, which are interpreted, are slower than applications created with ADS, which are compiled.

ObjectARX allows the applications to create intelligent design objects as custom entities, which becomes part of the AutoCADŽ database, rather than making them geometrical entities. These intelligent objects have the ability to respond directly to editing commands, displaying according to their inherent characteristics. For example, a custom object refrigerator might have some real-world properties like a specified clearance from the walls in the rear, side and front. In the design, that refrigerator positioned in a room near wall would be intelligent, that is, it would recognize the situation and "know" not to be positioned in a way tht would prevent the opening of the door. This inherent feature allows the developer to explore the possible extents of using real-world objects.

These custom entities created using ObjectARX are virtually indistinguishable from built-in AutoCADŽ entities. Also the new classes added in ObjectARX application development environment can be exported for use by other programs. It is possible to extend the ObjectARX protocol by adding functions at run time to existing AutoCADŽ classes.

Visualization of Design Data - Current Techniques - White Paper

ObjectARX Libraries
ObjectARX exposes the kernel of AutoCADŽ in the form of libraries. AcDb and AcEd libraries form the heart of ObjectARX along with the other important libraries.

AcDb provides the direct interfaces that allow access to the AutoCAD database. This library enables the development of custom objects and entities, such as lines, circles, and arcs, as well as the protocol extension that can extend the behaviors supported by the AutoCAD set of existing objects and entities. AutoCADŽ database objects include both geometrical objects such as polylines, circles, and arcs, as well as the protocol extension that can extend the behaviors supported by the AutoCADŽ set of existing objects and entities. AutoCADŽ database includes non-geometrical objects, such as symbol tables and dictionaries, as well as the geometrical objects mentioned previously.

AcGi provides the interface to render graphics to the display in various modes (wire frame, shaded, bounding box, etc) of those AutoCADŽ or application-defined objects which have graphical representation.

AcEd provides core interfaces to the AutoCADŽ drawing editor. In addition AcEd library provides classes for defining and registering new AutoCADŽ commands that operate in the same manner as built-in AutoCADŽ commands. AcEd also provides for an application to monitor specific editor events such as starting, ending, or canceling of a command, enabling an application to have specific inter-application relationships.

AcGe provides the interface to a utility library for common linear algebra and other geometric components of AutoCADŽ.

AcRx provides system-level classes for dynamic link library (DLL) initialization and linking and for runtime class registration and identification.

Reactors
Another benefit of ObjectARX technology is that it allows applications to program custom objects or commands to react to specific events that occur during the course of using AutoCADŽ. Known as reactors, these alert the application to specific situations and can provide notification of data changes to source programs.

Proxy Objects
With AutoCADŽ Release 14, a new mechanism substitutes each custom object with a proxy during AutoCADŽ editing sessions when the ARX application that created the custom object is absent. This allows customers to share drawing files with any AutoCADŽuser, whether or not they have installed the ARX application.

ObjectARX in AutoCADŽ 2000
The ObjectARX for AutoCADŽ 2000 is not yet released as it is still under Beta. According to Autodesk, with AutoCADŽ 2000, the ObjectARX kernel object system is now complete. Till ObjectARX SKD 2, the R12 Entities were not completely implemented as Objects; hence it was not possible to extend them in a complete Object oriented sense. Now the object class hierarchy has all AutoCADŽ entities as complete and derivable objects.

Earlier ObjectARX depended on ADS for user inputs using ads_getxxx() functions. Now in AutoCADŽ 2000, key new APIs (application programming interfaces) include a complete input point API, menu access, Microsoft Foundation Class (MFC) extensions, and more. That means a complete maneuverability of AutoCADŽ's Interface directly using VC++ and MFC. This gives the ability to customize the look and behavior of AutoCADŽ core User Interface. To provide a new level of object interoperability, a new software framework called as ObjectDBX™ is introduced such that AutoCADŽ components can access, read, and write to intelligent object databases. This system leverages the applications to be distributed into two classical components: a core logic component (.arx) and a database extension component (.dbx).

Conclusion
Using ObjectARX, one can, not only customize AutoCADŽ, but extend it where AutoCADŽ becomes just the base for a new application or product. Autodesk has led the way by highly advanced products such as Mechanical and Architectural Desktop built on top of AutoCADŽ using ObjectARX Thus ObjectARX is becoming the first choice for serious CAD application development in the AutoCADŽ environment.

Visualization of Design Data - Current Techniques - White Paper

Overview
Case Studies
Whitepapers
    © Dr. DWG All rights Reserved Sitemap | Feedback | EmailDr DWG Inc - CAD & Graphic Solution providerCall UsSystem Software Development