Creating a DLL for matrix operations

My context is a vertical application for which I plan to create a DLL for some arithmetic, starting with matrix operations. For example, inverting a 30x30 matrix composed in AutoLISP. The DLL may wind up doing more complex math, but it will remain oblivious of entities and other CAD details.

The first question is, anything developed using BRX will *not* work on Bricscad Classic, right? That is, users would need the Pro version.

Second, there's no serious reason to not use SDS, right? That is, I should be able to do this with SDS, and then users only need Bricscad Classic.

Third, where do I find the documentation for designing a DLL API to be conveniently accessible from AutoLISP?

Fourth, are other people using MinGW for development? (I'm guessing that Microsoft Visual C++ is not really mandatory.)

Thanks.

Comments

  • BRX is the best choice as it has geometry libraries that may help in what you're doing.

    DRX/SDS apps load on both Classic and Pro, but you won't have access to BRX's geometry libraries.

    Microsoft Visual C++ V2005 SP1 is mandatory as these DLLs now load directly into Bricscad's process.

  • Let's see if I've got this straight.

    BRX will create DLL's that load directly into Bricscad, so I must use Visual C++ V2005 SP1 (or "better"?), and every user must have Pro.

    DRX will create DLL's that load directly into Bricscad, so I must use Visual C++ V2005 SP1 (or "better"?), and the results will load into Classic.

    Because SDS creates external apps (which will work with Classic) I ought to be able to use MinGW for these, right?

  • Basically If you're going to develop using C++ you need Visual studio 2005 with SP1 and nothing else. SDS is no longer external and requires an entry point, you would use the DRX entrypoint class to load your modules.

     

    To code using SDS/DRX you need the following

    Bricscad classic/pro

    Visual studio 2005 with SP1.

    DrxSDK_2.06,  http://www.opendwg.org/download/

    SDS headers and library (comes with Bricscad)

     

    To code using BRX  you need the following

    Bricscad pro

    Visual studio 2005 with SP1.

    BRX SDK

     

    I went through the same choices and tried both, I wanted my apps to run on Classic as well as Pro. In the end I chose BRX as the SDK gives me access to all the goodies I need I.e. GEO libraries, Jigs etc.. I also found that there is more help available for BRX as I was able to view samples that were written for ARX.  I have posted some of my tests over at www.TheSwamp.org drop by sometime and have a look.

     

    Happy coding : )

  • Thanks, Daniel, this is becoming less confusing. So it seems that:

    1. The only real choice is between DRX and BRX, as SDS is only for legacy code, otherwise no advantage whatsoever.

    2. Visual Studio 2005 with SP1 is forced, presumably because later Visual Studio would produce things incompatible with Bricscad V10.

    What remains weird is this apparent lack of good documentation for DRX! Though I do expect to be later taking you up on the invitation to drop by TheSwamp, for the time being my estimation will be that DRX should suffice but we may need to allow for going to BRX, which means an increased per-customer cost for the client...

     

  • Right,  think of SDS/DRX as a single API.  You need the loader mechanism from DRX and you need the SDS function calls to play with lisp. 

     

    Visual Studio 2005 with SP1 is forced because this is what Bricsys uses to compile Bricscad, since your application will load 'in process' it needs to use the same runtime.

     

    Daniel

This discussion has been closed.