IJCAD2017 VB.NETにて印刷時にSetPlotConfigurationNameでeInvalidInput (code : 5)エラーが発生する。IJCADの印刷コマンドでは、PC3ファイルは選択できるが、VB.NETでは、PC3設定ファイルが認識できていない。理由は下記のプログラムを実行するとpc3ファイルが出力されない。OPTIONSで何らかの変更を行うとPC3ファイルの一覧が表示されるケースがある。(OPTIONSの設定は印刷に関係なく、何らかの設定変更で「適用」実施すると、PC3ファイルが表示される)
' Lists the available plotters (plot configuration [PC3] files)
<CommandMethod("PlotterList")> _
Public Shared Sub PlotterList()
' Get the current document and database, and start a transaction
Dim acDoc As Document = Application.DocumentManager.MdiActiveDocument
acDoc.Editor.WriteMessage(vbLf & "Plot devices: ")
For Each plotDevice As String In PlotSettingsValidator.Current.GetPlotDeviceList()
' Output the names of the available plotter devices
acDoc.Editor.WriteMessage(vbLf & " " & plotDevice)
Next
End Sub
追記1
回答して頂いた通り、最新状態にすることで、PC3ファイルの一覧が表示されるようになりましたが、根本的な原因において、まだ、SetPlotConfigurationNameでeInvalidInput (code : 5)が表示されます。当初はデバイス名(pc3名)がおかしいと思っていましたが、用紙サイズ(カノニカルメディア名)の指定ができないようです。色々試していますが、原因不明です。下記にコードを添付します。
<CommandMethod("PlotterLocalMediaNameList")> _
Public Shared Sub PlotterLocalMediaNameList()
' Get the current document and database, and start a transaction
Dim acDoc As Document = Application.DocumentManager.MdiActiveDocument
Using plSet As PlotSettings = New PlotSettings(True)
Dim acPlSetVdr As PlotSettingsValidator = PlotSettingsValidator.Current
Dim pStrOpts As PromptStringOptions = New PromptStringOptions(vbLf & _
"PC3 name: ")
pStrOpts.AllowSpaces = True
Dim PC3name As PromptResult = acDoc.Editor.GetString(pStrOpts)
Dim pStrOpts2 As PromptStringOptions = New PromptStringOptions(vbLf & _
"CM name: ")
pStrOpts2.AllowSpaces = True
Dim CMname As PromptResult = acDoc.Editor.GetString(pStrOpts2)
' Set the Plotter and page size
acPlSetVdr.SetPlotConfigurationName(plSet, PC3name.StringResult, CMname.StringResult)
acDoc.Editor.WriteMessage(vbLf & "Canonical and Local media names: ")
Dim cnt As Integer = 0
For Each mediaName As String In acPlSetVdr.GetCanonicalMediaNameList(plSet)
' Output the names of the available media for the specified device
acDoc.Editor.WriteMessage(vbLf & " " & mediaName & " | " & _
acPlSetVdr.GetLocaleMediaName(plSet, cnt))
cnt = cnt + 1
Next
End Using
End Sub
本コードを作成するにあたって、やりたいことは、PC3ファイルと用紙サイズを指定して印刷したいのですが、SetPlotConfigurationNameでエラーが発生したため、上記のような用紙サイズの一覧表示を行わせるサンプルコードを作成しました。引き続き調べていますが、原因がわかりません。
追記2
tknmtさん、追加サンプルコードの投稿ありがとうございます。
実行するとやはり下記のエラーメッセージが表示される状況です。
GrxCAD.Runtime.Exception: eInvalidInput (code : 5)
場所 GrxCAD.DatabaseServices.PlotSettingsValidator.
SetPlotConfigurationName(PlotSettings plotSet, String plotDeviceName, String
mediaName)
場所 Class1.plot.PlotSetting()
場所 GrxCAD.ApplicationServices.GcMgdCmdClass.InvokeWorker(MethodInfo mi,
Object commandObject, Boolean
bLispFunction)
場所 GrxCAD.ApplicationServices.GcMgdCmdClass.
InvokeWorkerWithException(MethodInfo mi, Object commandObject, Boolean
bLispFunction)
同様の処理でAutoCADでは問題なく動作しますが、IJCADではエラーとなります。