Works with Bricscad (Windows) Classic, Pro and Platinum, Bricscad (Linux) Classic and Pro.
Terminology
Teigha: A library provided by the Open Design Aliance (www.opendesign.com), to read and write DWG files, generate graphic display objects of DWG entities, fire database related reactors, etc... Bricscad is based on this library. The full library is only available for ODA founding members, such as the Bricsys company.
TX SDK: A free C++ SDK, consisting of the headers and libs of the Teigha library, and provided by the Open Design Aliance. The runtime dlls are not included in this SDK. Those are installed with the Bricscad product. This SDK can be downloaded freely on the public section of the ODA website (www.opendesign.com)
TX applications
Because Bricscad is based on the Teigha libraries, TX modules compiled with the TX SDK can be loaded to run in Bricscad. The Teigha eXtension (TX) SDK enables to produce TX modules files. These files are DLLs which can be loaded at runtime by Bricscad. Typically, such modules have the extension ".tx".
Note: in versions prior to Bricscad V12 these modules where called .drx. A drx file can no longer be loaded in current Bricscad version; the source code needs to be recompiled to *.tx using the latest TX SDK.
Note: if you would consider to work with the TX SDK, please read the following sections carefully. This documentation is intended to help you make the best decision for your application strategy, in particular the choice of API.
TX and ARX compared: similarities and differences
There is some confusion in the market today, about how exactly TX and Teigha relate to ObjectARX. In this section, we hope to give you a clear view on this subject.
At first sight, the TX classes, methods and functions look very similar to the ones found in ObjectARX. If you look at the help files or headers delivered with the TX SDK, you will recognize a lot of things when you have some experience in ARX development.
However, there are a number of fundamental differences that can be summarized as followed:
To illustrate this, please compare following code samples. The objective of the sample is simple: add a new line entity to the active drawing.
How it's done in ARX: |
How it's done in TX:Note: The differences with the corresponding ARX code are added as comments in the code. |
void createLine() |
//difference: command function needs command
context argument. |
//2. get active database |
//2. get active database |
//3. get model space BTR |
//3. get model space BTR |
//4. create new line entity |
//4. create new line entity |
//5. append entity to model space |
//5. append entity to model space |
//6. close all objects |
//6. close all objects |
Conclusion: even for a simple operation, such as adding a line to a drawing, there are differences in nearly each line of code, which can not be worked around. As a consequence, maintaining an ARX and TX version of your application, will require two separate sets of source code !
The better alternative: BRX
To overcome the differences explained above, Bricsys has developed another C++ API that is fully code compatible with ObjectARX. This API is called "BRX", the Bricscad Runtime eXtension.
We strongly recommend to use this API for C++ client applications. The advantages compared to TX can be of major influence for reducing the time and resources spent to bring your application to the Bricscad platform:
For more information, please check the BRX section of this developer reference. In case you do prefer to work with the TX SDK, please find some important information listed in the following paragraphs.
Compatibility between Bricscad and the TX SDK
Bricsys is a founding member of the Open Design Alliance (ODA), and therefore has access to all the source code of the Teigha libraries. In order to bring Bricscad to the level of high quality CAD platform it represents today, some parts of the Teigha libraries were rewritten or extended by Bricsys, for different purposes:
In all of this, it was not possible to keep the Teigha runtime libraries that are installed with Bricscad 100% binary compatible with the TX SDK as provided by the ODA. The most affected categories are OdGi and OdGs. However, a major part of the Teigha libraries are kept binary compatible, in particular those categories required for basic functionality:
Downloading the TX SDK
The TX SDK can be downloaded freely at the public section of the ODA website, (www.opendesign.com). Different versions of the TX SDK are presented there. It's important that you select the version that matches the version of the Teigha libaries installed with Bricscad. The recent release versions of Bricscad are based on Teigha 3.05.
Tip: the version number of the Teigha runtime dlls that are installed with Bricscad, can be seen in the names of those dlls. By looking into the Bricscad install folder, you will find dll's such as TD_Root_3.05_8, TD_Db_3.05_8.dll, TD_Ge_3.05_8.dll, ... In this naming, "3.05" indicates the Teigha version, suffix "_8" indicates that the dll's were built with VC8 (Visual Studio 2005).
Manual
A detailed manual and reference guide can be downloaded from the public section of the ODA website, (www.opendesign.com).
Samples
Some sample TX modules are included in the TX SDK.
Extensions useful for TX and SDS applications
In the API folder that is installed with Bricscad, you can find some header files that contain useful extensions to the TX interfaces. As explained above, these are mainly extensions required to provide access to some important functions of the editor environment of the CAD platform:
TX project configuration
Some required Visual Studio project settings for TX modules:
© Menhirs NV. All rights reserved. |