トップページ › フォーラム(掲示板) › 製品外 › icAPI/CRXの開発 › icAPIの開発に関する質問
- This topic has 40 replies, 2 voices, and was last updated 7 months, 2 weeks ago by
soushi.maki.
-
AuthorPosts
-
2023年8月11日 at 12:06 PM #1305
icAPIの利用と開発はAS会員でなくても大丈夫です。
作ったアドインの権利は作成者次第かと思います。残念ですがCOMPOSEではアドインは動かせないです。
VC++であればIRONCADのプログラムフォルダにサンプルがありますので
のぞいてみてもいいかもしれません。C:\Program Files\IronCAD\20xx\ICAPI\Samples\cplusplus
2023年8月11日 at 10:13 PM #1306@yokomichiさん 回答ありがとうございました。
とありあえずICAPI2020\Samples\CSharp\MyFirstAddinでソリューションのリビルドをしてみました。VS2017でしたが
Samples\CSharp\MyFirstAddin\bin\x64\Debugの下に
MyFirstAddin.dll 2023/08/11
MyFirstAddin.dll.config 2017/05/30
MyFirstAddin.pdb 2023/08/11
の3個のファイルができていました。
ここまではあってますか?
このあとIRONCADにアドインさせるには*.msiが必要でしょうか?
2023年8月11日 at 10:27 PM #1307ビルドおめでとうございます。あとは以下で動くかと思います。
・出来たdllファイル(MyFirstAddin.dll)をC:\Program Files\IronCAD\2020\binにコピーします。
・VS2017用 x64NativeTools コマンドプロンプトを管理者で起動し、次を入力します。
cd C:\Program Files\IronCAD\2020\bin
regasm MyFirstAddin.dll・C:\Program Files\IronCAD\2020\Config\Ironcad.Addin.configを適当なフォルダにコピーして
テキストエディタで開きます。そして一番下から3行上( </AddIns>の上)に下記を追加します。
ファイルを保存して、元のフォルダに上書きします。<AddIn>
<identify></identify>
<inprocserver>MyFirstAddin</inprocserver>
<siteclsid>{6AE87CEF-C966-4938-A945-50D4280F60D0}</siteclsid>
<modulever></modulever>
<platformver></platformver>
<autoload></autoload>
<system>true</system>
<displayname>
<default>MyFirstAddin</default>
<zh-cn></zh-cn>
</displayname>
<description>
<default>MyFirstAddin2</default>
<zh-cn></zh-cn>
</description>
</AddIn>・IRONCADを起動して、アドインにMyFirstAddinが追加されているのでチェックを入れ有効にします。
2023年8月11日 at 10:32 PM #1308動かなければ、https://ironcad.fun/download/ironcad-addin-sample-cs/のを
動かすのが一番手っ取り早いと思います。2023年8月15日 at 8:19 PM #1309VISUAL STUDIO 2017 EXPRESS for DESKTOPでビルドしていました。
regasm MyFirstAddin.dllで
debug x64だと
RegAsm : error RA0000 : ‘C:\Program Files\IronCAD\2021\bin\MyFirstAddin.dll’ は有効な .NET アセンブリではないため、読み込めませんでした。debug ANY CPU だと
RegAsm : error RA0000 : ファイルまたはアセンブリ ‘MyFirstAddin, Version=1.0.0.0, Culture=neutral, PublicKeyToken=56647e1eee90f6d4’、またはその依存関係の 1 つが読み込めませんでした。厳密な名前の検証に失敗しまし た。 (HRESULT からの例外:0x8013141A)
と出ています。
一旦VISUAL STUDIO 2017 EXPRESS for DESKTOPを削除して
VISUAL SUDIO 2015 EXPRESS for DESKTOPかCommunityをインストールできないか探したのですが、EXPRESS for DESKTOPは入手できない。CommunityはISOファイルを見つけれたのですがteam explore for microsoft visual studio 2015 update3 ctp1で致命的エラーでインストールできませんでした。
再度VISUAL STUDIO 2017 EXPRESS for DESKTOPを再インストールしていますが現在手に入る環境でサンプルのビルドは可能でしょうか?
2023年8月15日 at 9:35 PM #1310VISUAL STUDIO 2017 EXPRESS for DESKTOPでエラー出てました。
重大度レベル コード 説明 プロジェクト ファイル 行 抑制状態
エラー コマンド “”C:\Program Files (x86)\Windows Kits\8.1\bin\x86\mt.exe” -manifest C:\Users\m-note-a5750\source\repos\ICAPI\Samples\C#\MyFirstAddin\MyFirstAddin.dll.manifest -outputresource:MyFirstAddin.dll;2
“C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\sn.exe” -R MyFirstAddin.dll “C:\Users\m-note-a5750\source\repos\ICAPI\Samples\C#\MyFirstAddin\ICApiAddin.snk”
” はコード 9009 で終了しました。 MyFirstAddinエラー出ててもMyFirstAddin.dllってできるんですね。
-
This reply was modified 2 years, 6 months ago by
soushi.maki.
2023年8月15日 at 9:44 PM #1312solutionの設定はdebug|x64で正しいです。(IRONCADは64bitのdllしか読み込めなかったと思います。)
コマンドプロンプトがx64用でなくx86用で実行していないでしょうか?
(私の環境でx64用(左)/x86用(右)コマンドプロンプトの実行結果だとsoushi.makiさんと同じようなエラーになります。)
もう一つの重大度レベルのエラーはプロジェクトのビルド後の設定を以下のように書き換えてみてください。
(10.0.22000.0は環境によって変わりますのでC:\Program Files (x86)\Windows Kits\10\binの中を見てパスを変更してみてください)“C:\Program Files (x86)\Windows Kits\10\bin\10.0.22000.0\x64\mt.exe” -managedassemblyname:$(TargetFileName) -nodependency -out:$(TargetFileName).manifest
“C:\Program Files (x86)\Windows Kits\10\bin\10.0.22000.0\x64\mt.exe” -manifest $(TargetFileName).manifest -outputresource:$(TargetFileName);2
“C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\x64\sn.exe” -R $(TargetFileName) “$(SolutionDir)ICApiAddin.snk”2023年8月16日 at 8:25 PM #1313ご指導ありがとうございます。
エラーは
“C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x64\mt.exe” -managedassemblyname:$(TargetFileName) -nodependency -out:$(TargetFileName).manifest
“C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x64\mt.exe” -manifest $(TargetFileName).manifest -outputresource:$(TargetFileName);2
“C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\x64\sn.exe” -R $(TargetFileName) “$(SolutionDir)ICApiAddin.snk”書き直したらエラー番号が変わりました。
エラー
““C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x64\mt.exe” -managedassemblyname:MyFirstAddin.dll -nodependency -out:MyFirstAddin.dll.manifest
“C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x64\mt.exe” -manifest MyFirstAddin.dll.manifest -outputresource:MyFirstAddin.dll;2
“C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\x64\sn.exe” -R MyFirstAddin.dll “C:\Users\m-note-a5750\Documents\Visual Studio 2017\Projects\icapi\MyFirstAddin\ICApiAddin.snk””
はコード 123 で終了しました。もう一点 regasm MyFirstAddin.dll のほうは
VS2017用x64 Native toolコマンド
VS2017用X64_X86 Crossコマンド
VS2017用X86_X64 Crossコマンド
x86 Native Tools Command Prompt
の全てを試してみたのですが残念ながら全て

「有効な .NET アセンブリではないため、読み込めませんでした。」
となってしまいました。
Yokomichiさんのコマンド画面をみてVisual Studio2022
だったのでMicrosoft Visual Studio Community 2022 (64 ビット) – Current Version 17.7.0
を入れてみたのですが現時点でVs2017Expと同じ状況です。
2023年8月16日 at 10:46 PM #1314soushi.makiさんとほぼ同じ環境で試してみました。
プロジェクトファイル一式を添付します。こちらで試してみてください。
(ビルド後のイベントのダブルクォーテーションが怪しい気がします。)regasmはvs2017だとパスが通っていないせいか直接Regasm.exeを指定しないといけないようでした。
Regasm.exeもx86用とx64用があり、添付ファイルのコマンドプロンプトの画像のようなパスのRegasm.exeを使用しています。
(C:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe)作成したIroncad.Addin.configも入れています。IronCADのConfigフォルダ内に上書きしてください。
お手数おかけしますが、うまくいくことを祈っています。
-
This reply was modified 2 years, 6 months ago by
yokomichi.
Attachments:
2023年8月17日 at 3:07 PM #1318yokomichiさん
色々ありがとうございました。
なんとか動作確認できました。
頂いたMyFirstAddin2017をビルドして
VS2017用 x64NativeTools コマンドプロンプトを管理者で起動
cd C:\Program Files\IronCAD\2021\bin
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\regasm MyFirstAddin.dll
ビルド後のエラーはエラー番号は1に変わりました。
“C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x64\mt.exe” -managedassemblyname:MyFirstAddin.dll -nodependency -out:MyFirstAddin.dll.manifest
“C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x64\mt.exe” -manifest MyFirstAddin.dll.manifest -outputresource:MyFirstAddin.dll;2
“C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\x64\sn.exe” -R MyFirstAddin.dll C:\Users\m-note-a5750\Documents\Visual Studio 2017\Projects\icapi\MyFirstAddin2017\MyFirstAddin\ICApiAddin.snk”はコード 1 で終了しました。

ビルド後の”MT.EXE、SN.EXE”はMyFirstAddin.dllに変更を及ぼすわけではない感じですか?
IRONCADを起動したところ

MyFirstAddinの画面も正常に動作している感じです。
ありがとうございました。
ちなみに上記画面のxyz(直線軸)AB(回転軸)をアドイン経由で動かそうと考えています。
作りたいアドインとしては単独のアプリから環境変数に
ICMOVE(X)=PL,PW,PH,BL,BW,BH,BA
ICMOVE(Y)=PL,PW,PH,BL,BW,BH,BA
ICMOVE(Z)=PL,PW,PH,BL,BW,BH,BA
ICMOVE(A)=PL,PW,PH,BL,BW,BH,BA
ICMOVE(B)=PL,PW,PH,BL,BW,BH,BA
ICMOVE=5
を設定するとアドインが対応するシーンのプロパティ値を設定しICMOVE=0をかえす

位置のほうがP*で向きの方がb*で考えています。
最後に覚え書きです。
Visualstudio2017EXPRESS for Desktopのインストールはネットから適当なバージョンのVisualStudioSetup.exeをググってきて
VisualStudioSetup.exe –channelUri https://aka.ms/vs/15/release/channel –productId Microsoft.VisualStudio.Product.WDExpress
でインストールしました。
2023年8月17日 at 3:10 PM #1323送信しても反映されなかったので3回ほど同じような文面で送ってしまいました。
2023年8月17日 at 4:05 PM #1321yokomichiさん 色々ありがとうございました。最終的にエラーは無くなりませんでしたが無事IRONCADでの起動が確認できました。現在エラーはコード1となっています。
sn.exeとmt.exeはMyFirstAddin.dllの変更をしていない感じですか?

とりあえずこんな感じになりました。
今度はhttps://ironcad.fun/download/ironcad-addin-sample-cs/をみようと思っています。
2023年8月17日 at 4:07 PM #1334こちらのサイトの管理画面で見たところ保留になっていたので
勝手に公開にしたのも影響するかもしれません。すみません。
無事に動いたようでよかったです。>ビルド後のコマンド(mt.exe、SN.EXE)はMyFirstAddin.dll本体に変更を加えているわけでは無い感じですか?
.dllに変更を加えているのですが、環境によって必要な場合と必要でない場合があります。(私の環境ではこれがないと動かないです)
soushi.makiさんの環境では必要ないのかもしれません。-
This reply was modified 2 years, 6 months ago by
yokomichi.
2023年8月18日 at 2:35 PM #1336IRONCAD_ICAPI_SAMPLE_CS.slnを
VS2017EXPで開いてみたところ
icAPI_CppWrappere_CS(非互換)
icAPI_Sample_CS_Setup(非互換)
VS2022Commで開いてみたところ
icAPI_Sample_CS_Setup(非互換)
で開くことができませんでした。
やっぱりVS2015Commのインストールが必須でしょうか?
前回「Team Explorer for Microsoft Visual Studio 2015のインストール中に致命的なエラーが発生」で断念しましたがWindows10 1909あたりから始めようかと考えています。
2023年8月18日 at 4:57 PM #1337VisualStudio2022 (2017も同様) で開く場合は2015のようにinstallerProjectをインストールする必要があります。
VisualStudioのメニュー [拡張機能] – [拡張機能の管理]からオンラインを開き、Installerと検索窓に打ち込むと
Microsoft Visual Studio Installer Project 2022が出てきますのでインストールしてみてください。
(icAPI_Sample_CS_Setup(非互換)は解消すると思います。)
https://ironcad.fun/download/ms_vs2015_community_install/ms_vs2015_community_install_package1/
インストールしビルドするとエラーするかと思います。

こちらはicAPI_Sample_CS_SetupからUxTheme.dllを除外するとエラーが解消します。

宜しくお願いいたします。
-
This reply was modified 2 years, 6 months ago by
-
AuthorPosts
- You must be logged in to reply to this topic.





