Hello Friends,
Is it possible to develop plugins for Catia V5 ? If so please tell me what are the supported languages ? I am not able to find any documentation for the same.
@jagandeep
Yes. It is possible to develop plugins for Catia V5. Any object-oriented programming language is supported such as C#, C++, VB, etc. You will need a development environment such as Microsoft's Visual Studio 2012 (
Create a new project and in the Solution Explorer window right-click on your application and select Add Reference. See step 1. This will allow you to reference Catia's publicly available API (Application Programming Interface). You will see a window where you can select the appropriate COM (Component Object Model) libraries that you are referencing in your code. See step 2. To know which libraries contain certain methods and properties you can look up the code in question via Catia's VBA Editor using View > Object Browser. See step 3, 4, & 5.
I hope this gives you some basic information to get started, but you can find additional information that deals with this subject on Eng-Tips Forums. At the top of this thread you will see the links "Forum" "Search" "FAQS", etc. Click on "FAQS" and at the bottom of the page under the "SCIRPTS AND MACROS" section there are two links that address this question:
@ferdo
I didn't see your response until my browser refreshed when I hit "Submit Post" on my response. To be honest, I wasn't sure what jagandeep was specifically asking for anyway - I assumed he was inquiring about how to create a standalone vb app though he might be trying to find info on CAA - depends on what he's trying to accomplish I suppose.
Thanks for this wonderful response.
What I mean by Plug-In Something more than common macro functionality. Like hacking the menus, toolbars, right click menu along with hacking catia commands
By the way I am interested in developing a simple sort of PLM Software for Catia V5R18/19/20/21 Using C# for improving my coding skills and for fun. I think .catvba is just too limited for this.
@jagandeep
catvba is very limited in terms of what objects, methods, properties, etc are exposed for automation purposes. You can check CATIA's API documentation beforehand to see what's publicly available and what's not. DS's website (via ferdo's link) will have much more info on CAA, but it gives you access to CATIA's framework, whereas catvbs, catvba, and vb apps simply send instructions to CATIA via it's API (Application Programming Interface). This relies on COM (Component Object Model) interoperation.
For customization on the level you were describing (such as drop down menu's) you will have to use CAA. Licenses for CAA cost tens of thousands of dollars.
@jagandeep
Yes. HD2, MD2, MD1, doesn't matter. You can use C# (or any other object-oriented programming language) to develop applications that access CATIA V5's API. Refer to my first post for how to create applications in Visual Studio 2012 that access CATIA V5.
@jagandeep
They're not foolish. Asking is the best way to learn. To understand what you can do without CAA, it's probably best to investigate what items are exposed to automation via the API. You will need to reference CATIA's API documentation, which should have been installed with CATIA. Mine is installed here: C:\Program Files\Dassault Systemes\B22doc\English\online\CAAScdBase\CAAScdAutomationHome.htm. To find it on your machine, in CATIA, press F1 to bring up the help documentation then navigate to Part Design > Part Design Reference > Indexes > Master Index. This Master Index lists all of the properties, methods, and objects that are exposed to automation. To view these items another way, in CATIA, go to Tools > Macro > Visual Basic Editor. Then go to View > Object Browser or just hit F2. This lets you view the various members of different classes in the available libraries. Simply put, if it's not in here (the API documentation), it can't (without some workarounds or extraordinary measures) be automated without CAA/RADE. This documentation should give you a better idea of what limitations exist. It should also give you an idea of whether or not you'll be able to accomplish what you need without a CAA license.
Also, I want to reiterate that if you are developing a standalone application in Visual Studio (or some other development environment) it doesn't matter whether you are programming in C# or VB or C++. Any CATIA interface that's exposed to automation can be called from an outside application - regardless of what language the application was developed in. Although, with regards to CAA, you would have to use C++ because that's the language CATIA was developed in. I should note that I have not personally used CAA/RADE, I'm speaking from what I've heard.
@jagandeep
You can add a customized toolbar without CAA. See here for a good explanation on how to do it and how to add icons to your buttons. Again, these will just be calling macros.
You cannot add a drop-down menu without CAA. When I say "drop-down menu" I mean a customized menu at the top of CATIA like "File" "Edit" "View" etc. Some companies use CAA to create an integration type drop-down menu with their PDM system, such as Windchill or SmarTeam. You mentioned something about developing PLM software. You would need CAA to do a drop-down menu.
@jagandeep - there are few benefits if you have an independent application to be used like a toolbar to launch your macros.... you are completely independent by CATIA version or CATSettings. It depend also how you developed that toolbar (I mean in which programming language). You can create a toolbar to be used under Windows OS or under both UNIX and Windows.
Definitely you need CAA to insert a pull-down menu like CATIA has. A customized toolbar (like in CATIA) can be created manually without problems, search on net and you will find plenty of examples how to do it.
Thanks, So that means everything is already available with Standard Catia Installation. But I wonder how CAA tools enables it, may be just change some permissions to allow the modification not available normally ?