Schlagwort-Archive: c#

extract inventor developer tools without Visual Studio installed

in this article will show how to extract the data from an msi (developer tools.msi) to at custom folder without having the dependencies installed.

If you have Visual Studio 2019 or above you cannot install the developer.msi. It will throw an exception that you need to install Visual Studio 2017.

Thanks to Mika who pointed me in the right direction it is possible to get the tools out of the msi.

  1. open command line
  2. (msiexec /a „C:\Users\Public\Documents\Autodesk\Inventor 2019\SDK\developertools.msi“ TargetDir=C:\Temp\dt) doc link
Weiterlesen

unit testing with inventor api

unit test are annoying and time consuming. ist not fun at all, and the customer does not see any value in tests…..

i hear this all the time, and at some point in my tech career i also belived this. Then i wrote my first test an found a bug. At this point lightbulds started to glow and i realised that i woul not found the bug bymyself.

In the worst case the customer would have found the bug :C

As we all know writing tests makes our software more stable and maintainability will be increased.

unit tests with the inventor api

AutoCad Inventor makes it very difficult to write testable code. At some point i thought that i am lucky. The api is completly build by interfaces.

For examle the Application and the documents

Weiterlesen

deploy your inventor addIn

where to put your addin files so that inventor will know and how to deploy this to your clients.

where to put your files

Every time Inventor starts it will look in different folders for the *.addin file.

  1. All Users, Version Independent %ALLUSERSPROFILE%\Autodesk\Inventor Addins\
  2. All Users, Version Dependent
    %ALLUSERSPROFILE%\Autodesk\Inventor 2013\Addins\
  3. Per User, Version Dependent
    %APPDATA%\Autodesk\Inventor 2013\Addins\
  4. Per User, Version Independent
    %APPDATA%\Autodesk\ApplicationPlugins

check this for more information.

end user deployment

Deploying your code to the end user can be difficult. I recommend using an installer/ setup to deploy your Addin. This ensures that the addin is installed/ unistalled correctly and if you change the installation folder you can do this without any trouble.

I tried and used a few installer. Here are some of my thoughts.

I recommend using ‚folder/file copy‘ installer. In some cases the dependecy determine can fail and does not install the right assemblies or versions.

deployment via msi package and Inno Setup

In my case i am using ‚Inno Setup‚ and the related ‚Inno Script Studio‚. It is a free installer for Windows msi. It also has an CI-CD support for Azure Dev Ops support available on github.

the following setup is located in the folder : ..\AddInFolder\Deployment

; Script generated by the Inno Script Studio Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

#define MyAppName "MBTTools.Deployment"
#define MyAppVersion "0.1.6.22"
#define MyAppPublisher "MBT Tools"
#define MyAppURL "http://www.example.com/"

[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{D1303A7C-F22B-49B3-8E60-A22BA82DA0D1}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={commonappdata}\Autodesk\ApplicationPlugins\MBDPowerTools
DefaultGroupName={#MyAppName}
DisableProgramGroupPage=yes
OutputDir=..\AddInFolder\Deployment
OutputBaseFilename=<name>Installer
Compression=lzma
SolidCompression=yes

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
Name: "german"; MessagesFile: "compiler:Languages\German.isl"

[InstallDelete]
Type: filesandordirs; Name: "{sd}\ProgramData\Autodesk\ApplicationPlugins\<Name>\*"
Type: filesandordirs; Name: "{sd}\ProgramData\Autodesk\ApplicationPlugins\<Name>Tools\*"
Type: filesandordirs; Name: "{commonpf}\Autodesk\ApplicationPlugins\<Name>\*"; Languages: english german
Type: filesandordirs; Name: "{commonpf}\Autodesk\ApplicationPlugins\<Name>Tools\*"; Languages: english german


[Files]
Source: "..\<Name>\bin\Debug\*"; DestDir: "{commonappdata}\Autodesk\ApplicationPlugins\<Name>Tools"; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Icons]
Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"

getting started with the Inventor api

intention

on this site i will talk about how you can start implementing your own add in for the 3D CAD Software Inventor. This will explain how to implement a basic addin without any functionality.

Inventor provides a lot of functionality , but sometimes you want to improve these features or you want to add own features. You can achive this with the powerfull Inventor Api.

The used example can be found on GitHub.

requirements

  • Inventor installed (theoreticly you do not need Inventor installed. You just need the refernce to the ‚Autodesk.Inventor.Interop‘ assembly)
  • optional: Inventor SDk installed
Weiterlesen