51171


IJCAD2018MechanicalでC#を使用してAutoCADの時のソースを移植する作業を行っております。

エンティティを選択してフィレットを行う処理があるのですが、AutoCADの時は

[code]

    // Import部分
    [DllImport("accore.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl, EntryPoint = "acedCmd")]
    private static extern int acedCmd(System.IntPtr vlist);
    
    
    // フィレット実行部分
    ResultBuffer buf = new ResultBuffer();
    buf.Add(new TypedValue(5005, "_FILLET"));
    buf.Add(new TypedValue(5009, pt1));
    buf.Add(new TypedValue(5009, pt2));
    acedCmd(buf.UnmanagedObject);
    
[/code]

で動作していたのですが、IJCADに移植を行う際に

[code]

    // Import部分
    [DllImport("gced.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl, EntryPoint = "gcedCmd")]
    
[/code]

というふうにImport部分を変更しましたが、これで実行しようとすると  
「DLL 'gced.dll' の 'gcedCmd'というエントリポイントが見つかりません。」  
というエラーが発生します。

このacedCmdの代わりになるものを教えていただけないでしょうか。


CC BY-SA 4.0
2018-12-13T06:17:11.250
51166
2018-12-13T07:37:13.073
30311
question
.net ijcad
IJCADのgced.dllについて


Import部分を次のように変更するとgcedCmdが呼び出せると思います。

[code]

    [DllImport("gcap.dll", EntryPoint = "gcedCmd", CharSet = CharSet.Unicode)]
    
[/code]

また、オブジェクトIDや選択セットを渡さない場合であれば、  
Editor.Command()メソッドを使用してコマンドを呼び出すこともできます。

[code]

    var ed = Application.DocumentManager.MdiActiveDocument.Editor;
    ed.Command("FILLET", pt1, pt2);
    
[/code]

こちらのページが参考になると思います。  
<https://support.ijcad.jp/hc/ja/articles/206242761>


CC BY-SA 4.0
2018-12-13T07:37:13.073
51171
2018-12-13T07:37:13.073
51166
answer