Monday, January 31, 2005

Class 1 - Overview

Introduction

ObjectARX is an AutoCAD Runtime Extension.
With ObjectARX SDK you can build applications that will alow you to extend AutoCAD features like commands, dialog boxes, entities, objects and much more.

The ObjectARX application is actually a DLL that is loaded into AutoCAD environment and allows you to access new features as mentioned above. To be able to build these DLLs you need to follow some basic rules to setup Microsoft Visual Studio.NET environment and assert your application will respect AutoCAD requirements.

The performance of this application will be the same of native features. By the way, Autodesk uses ObjectARX to build vertical products you may already know like Autodesk MAP and Architectural Desktop, among many others.

User Requirements

Because ObjectARX is not a simple customization tool, some requirements must be observed to allow you to be able to proceed. If you don't match these requirements I would recommend you to first increase your skills and then go back to try this course.

The minimum requirements to learn at least basic ObjectARX are:
  • Basic Visual Studio.NET concepts;
  • Average C++ knowledge;
  • Advanced AutoCAD knowledge;
  • MFC (Microsoft Foundation Classes) concepts;
  • Object Oriented Techniques;

As mentioned before, this course is not intended to be a complex guide or even cover advanced features. I believe you can go further by yourself after learn the basic features and mainly the basic concepts which are the secret of ObjectARX.

I will not cover .NET Framework capabilities to make the course as much simple as I can. Once you learn and figure out how AutoCAD works from inside you will open your mind to ObjectARX capabilities and will be able to build great application!

How to use ObjectARX SDK

Once you have downloaded your copy of ObjectARX SDK and extracted it to your hard drive, you will find the following folders inside it:

\arxlabs : This directory consists of a set of labs that shows some aspects of the ObjectARX.
\classmap : This directory contains an AutoCAD drawing with the ObjectARX class hierarchy tree.
\docs : This directory contains the ObjectARX online help files.
\inc : The inc directory contains the ObjectARX header files.
\lib : The lib directory contains the ObjectARX library files.
\redistrib : This directory contains DLLs that may be required for an ObjectARX application to run.
\samples : This directory contains examples of ObjectARX applications.
\utils : This directory contains other libraries like brep for boundary representation and ObjARXWiz for the ObjectARX wizards.

ObjectARX Classes Naming

ObjectARX classes names follow the following prefix standards:

AcRx : Classes for binding an application and for runtime class registration and identification.
AcEd : Classes for registering native AutoCAD commands and for AutoCAD event notification.
AcDb : AutoCAD database classes.
AcGi : Graphics classes for rendering AutoCAD entities.
AcGe : Utility classes for common linear algebra and geometric objects.

Depending on which set of features you use in your applications you will need to use the corresponding library as follows:

AcRx : acad.lib, rxapi.lib, acdb16.lib
AcEd : acad.lib, rxapi.lib, acedapi.lib, acdb16.lib
AcDb : acad.lib, rxapi.lib, acdb16.lib
AcGi : acad.lib, rxapi.lib, acdb16.lib
AcGe : acad.lib, rxapi.lib, acge16.lib, acdb16.lib

ObjectARX Wizard

I will bypass the Visual Studio environment configuration to build ObjectARX applications. You could refer to this information inside SDK documentation. We will use on this course the Wizard provided by ADN (Autodesk Developer Network) team. It is located inside ObjectARX directory called \utils\ObjARXWiz. Inside it you will find the installation package named ArxWizards.msi.

To install this Wizard, close your Visual Studio.NET and double click the above mentioned file. Follow the steps. When finished, open Visual Studio.NET again and you will see a new toolbar.

See you on Class 2!

Friday, January 28, 2005

Requirements

Hello,

Prior to begin the course I would like to list what are the requirements to create, compile and use ObjectARX applications.

I will use the most recent version that is ObjectARX 2005. Most of features presented will be compatible to previous versions (I will consider release 2000 and above).

What you will need:
  • AutoCAD 2000,2000i and 2002 (and verticals): ObjectARX 2000 and VC++ 6.0;
  • AutoCAD 2004, 2005 and 2006 (and verticals): ObjectARX 2004 and VC.NET 2002 (7.0);
  • AutoCAD 2007, 2008 and 2009 (and verticals): ObjectARX 2007 and VC.NET 2005 (8.0);
  • AutoCAD 2010, 2011 and 2012 (and verticals): ObjectARX 2010 and VC.NET 2008 (9.0);
  • AutoCAD 2013 and 2014 (and verticals): ObjectARX 2013 and VC.NET 2010 (10.0);
*** Visual Studio 2010 and 2012 does provide the Platform Toolset capabilities allowing you to use their IDE but compile the code with previous version. Note that this is possible only if you have the corresponding platform core compiler version installed at your machine. The advantage of this feature is to be able to centralize multiple project versions into the same IDE.

You may download AutoCAD trial versions from Autodesk web site (www.autodesk.com).
To download ObjectARX (for free), go to www.objectarx.com (this will redirect you to the right page at Autodesk's web site).
Once you have the above products, proceed with the installation:
  • Install AutoCAD (full option recommended);
  • Install Visual C++;
  • Install (just need to extract) ObjectARX to your computer;
On the next post I will explain how to install the ObjectARX Wizard tool.

Further information about Microsoft Visual Studio versions:
Product nameCodenameInternal
version
Supported .NET
Framework versions
Release date
Visual StudioN/A4.0N/A1995-04
Visual Studio 97Boston5.0N/A1997-02
Visual Studio 6.0Aspen6.0N/A1998-06
Visual Studio .NET (2002)Rainier7.01.02002-02-13
Visual Studio .NET 2003Everett7.11.12003-04-24
Visual Studio 2005Whidbey8.02.0, 3.02005-11-07
Visual Studio 2008Orcas9.02.0, 3.0, 3.52007-11-19
Visual Studio 2010Dev10/Rosario10.02.0, 3.0, 3.5, 4.02010-04-12
Visual Studio 2012Dev1111.02.0, 3.0, 3.5, 4.0, 4.52012-09-12
Visual Studio 2013Dev1212.02.0, 3.0, 3.5, 4.0, 4.5, 4.5.1Upcoming


Cheers!

Wednesday, January 26, 2005

Welcome

Welcome to my ObjectARX Blog.
I have decided to create this Blog to allow AutoCAD advanced users and AutoLISP / VBA programmers to get into ObjectARX world.
As it is a very complex environment I will try to be brief and clear on my explanations and present it step by step.
Hope you enjoy!