DWGdirect and DRX Explained
In my previous post I briefly mentioned the DRX SDK and the DWGdirect SDK. There is a lot of confusion regarding these two and unfortunately the ODA is not doing a great job in explaining these two technologies. I am going to try.
The DWGdirect SDK is basically a clone of the ObjectARX SDK developed by Autodesk and which forms the basic framework of AutoCAD. The DWGdirect SDK has been used by the IntelliCAD Technology Consortium (ITC) to build IntelliCAD 7. It is also used by other ODA members to build CAD applications that they use in house or for their clients. The ODA prefers to call such applications DWGdirect hosted applications because they are built using the DWGdirect SDK as the framework.
I do not particularly like the fact that the ODA is calling their SDK “DWGdirect”, not because Autodesk wants to trademark “DWG”, but because the name seems to suggest that the DWGdirect SDK can be used to build software that stores it’s data in DWG files (such as IntelliCAD), when in fact it can be used as a framework to build just about any CAD software. To give you an example, you can use the DWGdirect SDK to build software that reads and writes it’s own file format. At SYCODE we are using the DWGdirect SDK to build the next version of TerrainCAD, our standalone terrain modelling software. TerrainCAD uses the OpenNURBS 3DM file format as it’s native file format and has nothing to do with DWG, apart from the fact that it can read and write DWG files among many others. The DWGdirect SDK offers the framework to store geometric data, show geometric objects in a drawing window, modify objects using grips, etc., none of which is related to DWG at all. So in my opinion the “DWG” in DWGdirect is misleading and I hope the ODA drops it for something more fitting. I look at the DWGdirect SDK as quite simply a framework to build a CAD application, not a tool to read and write DWG files. And quite frankly, I have a problem referring to TerrainCAD a DWGdirect hosted application. It just does not sound right.
The DWGdirect SDK is so powerful that any application built using it as a framework inherits a mechanism for third party developers to build custom applications (also called plug-ins) for it. That’s the main reason we are rewriting TerrainCAD using the DWGdirect SDK. So that third parties can extend the capabilities of TerrainCAD by means of plug-ins. These plug-ins are built using the DRX SDK, which is basically a subset of the DWGdirect SDK. Using the DRX SDK, programmers can develop plug-ins only, not entire applications. To get the DWGdirect SDK, you need to be a member of the ODA and pay them annual fees. But the DRX SDK is free and I love that fact. This means that when we build TerrainCAD using the DWGdirect SDK, anyone can use the free DRX SDK to build a plug-in for it. And the best part is that since IntelliCAD 7 is also built using the DWGdirect SDK, the same plug-in will work in IntelliCAD as well, or for that matter, any other DWGdirect hosted application like Bricscad.
I believe that this DWGdirect/DRX combination is a great Rapid Application Development tool for programmers who wish to develop and deploy powerful and robust software solutions quickly. At SYCODE we are looking at the DWGdirect SDK as a technology to build custom software solutions for our clients. Normally we design the custom solution as a plug-in to the client’s existing CAD system, or make the client buy another CAD system for which we can make a plug-in for. While this method works, it comes with the added headache of us having to upgrade our plug-in every time the client upgrades his CAD application, which is now an annual ritual. Moreover, we also have to ensure that our plug-in works with the service packs that the client installs from time to time. It’s too tedious and can sometimes get frustrating for the client as us as well. For example, we were able to port our SolidWorks 2007 plug-ins to 2008 only six months later, and that was a big problem for our clients. If we build our solution as a standalone application and make it scalable by adding features through plug-ins, life will be much easier. Moreover, our client can get a third party to further extend our solution. All they have to do is download the free DRX SDK and build a plug-in for our solution. The third party does not need to join the ODA, and neither does the client.
Like I said in my earlier post, the ODA is not just a “bunch of hackers”. They offer some real neat technologies and components. The sad part is that they are so consumed by Autodesk and the DWG file format that they seem to be forgetting the nice stuff that they have been developing over the years.
Take a look at their web site. This is what you see on the home page:
“The Open Design Alliance is a non-profit membership-based consortium of software companies, developers and users committed to promoting the open exchange of CAD data now and in the future. In addition to setting standards for CAD data formats, the ODA also focuses on the practical matter of developing software libraries of exceptional quality that enable ODA members to develop applications capable of reading and writing the popular DWG and DGN CAD file formats. ODA members use the following ODA software libraries to support their efforts of developing CAD solutions”
…and they go on and talk about DWGdirect and DGNdirect, about how these libraries can read and write DWG and DGN files. Absolutely nothing about anything I said above. No mention whatsoever about the DRX SDK. You need to click on a cryptic link called “Public Downloads” to even know that they offer something called the DRX SDK.
In my opinion, the ODA needs to take a serious look at itself. They have spent all this time, money and resources to develop a robust, powerful and scalable CAD platform and keep marketing it as a DWG read/write toolkit. Obviously, there is something seriously wrong here. Come to think of it, I cannot really blame people for considering the ODA as a “bunch of hackers” when they seem to believe it themselves.
ODA, look around. There is life beyond Autodesk and the DWG file format.