コマンドラインオプション(作業の自動化)

Cutting Plannerはコマンドラインオプションによって他のソフトウェアと連携する事ができます。在庫データなど他のソフトからCSVデータを読ませたり、自動で計算させて結果を出力することができます。出力した結果について.recx ファイルには計算結果のすべてが出力さてています。CSVで不足の場合はリンク先を参照してください。

 

RectPacker.exe "[filename.recx]" /PartsBoard="[filename.csv]" /SourceBoard="[filename.csv]" /Save="[filename.recx]" /D=[x] /K=[x] /=R=[x] /H=[x] /Run [ ]の 内容を適宜変更します。

 

スペース付きに対応するため、ファイル名は" "で囲むようにしてください。
アプリのファイル名は旧名のままRectPacker.exeです。

 

コマンドラインオプションについては複数シートに対応しておりません。コマンドラインが複雑になりすぎるためです。ただし、複数シートが入った.recxファイルを作成することはできます(.recx  ファイル仕様を参照)。

 

システム開発のための試用期間の延長について

Cutting Plannerと他のソフトウェアと連携するシステムを作成する場合、30日間の試用期間では少なすぎる場合があります。この場合、一時的な期間限定のライセンスキーを無償で発行することも可能です。受託開発する場合はその外部業者に対してキーを発行いたします。弊社では受託開発自体は行っておりませんが、本ソフトウェアとの連携に必要なインターフェースをコマンドラインオプションの追加などで対応することは可能です。詳しくはお問い合わせください。

連続実行する場合の高速化機能

複数の計算を連続実行する場合、案件ごとにコマンドラインを実行するため、本ソフトウェアの起動時間分だけ遅くなります。
そこで、バッチファイルのようにコマンドラインの内容を記述したテキストファイルを用意して、そのファイル名を渡すことでこの欠点を補います。
拡張子は .recbat です。

rem recbatファイルの例
rectpacker.exe /Problem=1D /run /PartsBoard="d:\parts1.csv" /SourceBoard="d:\source1.csv" /Save="d:\test1.recx"
rectpacker.exe /Problem=2D /run /PartsBoard="d:\parts2.csv" /SourceBoard="d:\source2-3.csv" /Save="d:\test2.recx"
rectpacker.exe /Problem=2D /run /PartsBoard="d:\parts3.csv" /SourceBoard="d:\source2-3.csv" /Save="d:\test3.recx"

内部的にそのままコマンドラインとして扱っているため、先頭の rectpacker.exe や /run なども同様に必要です。
rem をつけた行はコメントとして無視されます。
例:

"C:Program Files\RectPackerRectPacker.exe" "d:\sumple.recbat"

 

起動時に .recx .xml ファイルを読み込む

"xxxx.recx" or "xxxx.xml"
起動時に読み込む.recx, xmlファイルを指定します。入力系2のオプションとは同時使用できません。

 

csvファイルのフォーマットについて

リンク先を参照。

コメント欄の列数が複数になった場合はCSV形式の"コメント"部分が複数になります。
列数が変わることで互換性が取れなくなってしまうのでご注意ください。

基本的にアプリ左側の表と同じです。例えば、部材の場合
"コメント","横","縦","枚数"

 

[ワークシート]-[シートのプロパティ]で[部材回転]を[個別設定]
にしている合は、(コマンドライン上の設定は /R=2 )
"コメント","横","縦","枚数","回転" となります。
回転は 可=1 否=0 です。

 

CSVファイルのインポート、計算オプションなどの入力

CSV形式のデータを読ませるときは /Problem /K= /R= などの各オプションも重要となります。
/DescriptionCount=でコメント欄の列数を指定します。
指定しなければ以前終了した時の設定となってしまいますので、間違い防止のために、同時指定してください。
テキストの文字コードは Shift-Jis または BOM付きUnicodeテキストです。BOMの有無で判別しています。
スペースが入ると別名のオプションとなってしまいますので注意してください。
OK /Problem=1D
NG /Problem= 1D
NG /Problem =1D

 

/DescriptionCount=

コメント欄の列数を指定します。指定しない場合は2列目以降の内容が数値に変換できるかで判定して自動設定します。
完全ではないので明示的に指定することをおすすめします。

 

/Problem=1D or 2D

最適化問題の1次元または2次元を指定します。

 

/PartsPanel="xxxx.csv"

起動時に読み込むCSV形式の部材リストを指定します。
特に部材の回転の可否を個別設定している場合は /R=2 にしなければその情報が欠落します。

 

/StocksPanel="xxxx.csv"

起動時に読み込むCSV形式の原板リストを指定します。

 

/SmallSourcePriorityPoint=

小さい方の原板を使用する優先度を指定します。

 

/FirstUsageStocksPanel="xxxx.csv"

起動時に読み込むCSV形式の優先使用材リストを指定します。

 

/LengthFormat=

長さの形式を指定します。フィートインチは米国向け機能です。
言語を日本語で設定しているときはデフォルトで小数点になります。
ftDecimal, 小数点
ftFeetDecimalInches, フィートと小数点インチ
ftFactionalInches, 分数インチ
ftFeetFractionalInches, フィートと分数インチ

 

/SameSizePartsMerge=

同一サイズの部材を統合します。統合は 1、別にするときは0を指定。

 

/Precision=

精度を指定します。小数点の桁数[0, 1, 2]。または分母の値[8, 16, 32, 64, 128]を指定します。
/D=は過去のバージョンの互換性のため、長さの形式が小数点の場合のみ同様に使用可能です。
無指定の場合はCSVデータの内容から自動設定します。

 

/SawKerfSize= or /K=

アサリ寸法を指定します。値の範囲は/Precision= または /D=で指定した小数部分の桁数によります。
無指定の場合は前回終了した時の値が設定されます。

 

/PartsRotation= or /R=

回転の可否を 可=0 不可=1 個別=2 で指定します。
特に部材リストのCSVファイルに個別設定の情報がある場合、/R=2 にしなければその情報が欠落することになります。
無指定の場合は前回終了した時の値が設定されます。

 

/SearchLevel=(2次元のみ)

配置速度と探索数(配置探索レベル)、値1~4、無指定の場合は前回終了した時の値が設定されます。
Ver13のアルゴリズム変更に伴い、/ConvergenceJudgmentTime=に統合。

 

/CutTableLength=

切断機の最大切断長・未指定は無制限

 

/MinimumSearchTime=(2次元のみ)

最小探索時間: 2Dのみ。単位は秒。
Ver13のアルゴリズム変更に伴い、/ConvergenceJudgmentTime=に統合。

 

/ConvergenceJudgmentTime=

探索レベル (収束判定時間 : 秒)

 

/SheetName1= or /Material=

シート名1を指定します。ファイル保存させた場合、指定の名前が.xmlファイル内に埋め込まれます。

 

/SheetName2= or /Thickness= or 

シート名2を指定します。 ファイル保存させた場合、指定の名前が.xmlファイル内に埋め込まれます。

 

/TopTrimSize= /BottomTrimSize= /LeftTrimSize= /RightTrimSize=

トリミングのサイズを指定します。
1次元時の左右は /LeftTrimSize= /RightTrimSize= のみが有効となります。

 

/PlacementRemnants1D=(1次元のみ)

端材の残し方
工程数優先: lrProcesses
残材長さ優先: lrRemnants
指定にかかわらず両方とも計算されますが、
CSVファイルでの出力はここでで指定した方になります。
また、.recxファイルの内容はここで指定したほうが<PanelSawList>タグに配置図が記録されます。

 

/PartsLayout=

部材の向き 以下のいずれかを指定

  • 1次元
    Left
    Right

  • 2次元
    LeftTop
    LeftBottom
    RightTop
    RightBottom

自動で計算して出力する  - /Runと組み合わせた場合のみに有効

/Run

起動してすぐに配置計算を実行します。終了後、即アプリを終了します。以下の保存オプションと組み合わせて使用します。
その保存オプションはRunと併用した場合のみに有効です。
入力には上記の入力系オプションを使用します。

 

/Save="xxxxxx.recx" or "xxxxxx.xml"

/Runと組み合わせて配置計算の保存先を指定します。

 

/SavePartsData="xxxxxx.csv"

/Runと組み合わせて[ファイル]-[エクスポート]-[配置済み部材リスト]メニューと同じ内容を出力します。
どの原板から採られた部材であるかわかるようになっています。
複数種類の原板に配置されている場合は同じ部材が複数行に渡ります。

1次元の場合のCSV形式

部材番号,サイズ,枚数,回転の可否,コメント,単価,未配置枚数,原板番号,原板のコメント,原板サイズ,その原板に配置された枚数

2次元の場合のCSV形式

部材番号,横サイズ,縦サイズ,枚数,回転の可否,コメント,単価,未配置枚数,原板番号,原板のコメント,原板の横サイズ,原板の縦サイズ,その原板に配置された枚数

 

/SaveStocksData="xxxxxx.csv"

/Runと組み合わせて[ファイル]-[エクスポート]-[配置済み原板リスト]メニューと同じ内容を出力します。

1次元の場合のCSV形式

原板番号, 長さ, 使用枚数, コメント, 単価, 優先使用材

2次元の場合のCSV形式

原板番号, 横, 縦, 使用枚数, コメント, 単価, 優先使用材

 

/SaveRemnantsData="ファイル名"

/Runと組み合わせて端材のリストを出力します。配置図番号とはアプリの計算結果として表示される図に重複しない番号をつけたものです。
下記/SaveTextReport=と組み合わせることでどの図から出た端材であるかわかるようになっています。
番号は手動で図を入れ替えられるようになったためアプリの表示順とは限りません。

1次元の場合のCSV形式

端材の幅,枚数,原板番号,原板のコメント,原板のサイズ,配置図番号

2次元の場合のCSV形式

端材の幅,端材の高さ,枚数,原板番号,原板のコメント,原板の横サイズ,原板の縦サイズ,配置図番号

 

/SaveTextReport="ファイル名"

 

指定したファイル名の拡張子がCSV以外の場合
  • 1次元
    アプリの下方に表示される数式っぽい結果を出力します。
  • 2次元
    [ファイル]-[エクスポート]-[結果のテキストを保存]と同じ内容をファイルに出力します。

ファイル名の拡張子を.CSVにした場合

過去のバージョンとの互換性のため場合分けをする仕様となっております。

  • 1次元
    原板のコメント,原板のサイズ,この配置図の歩留まり,部材のコメント,部材のサイズ,部材の枚数,配置図番号
  • 2次元
    原板のコメント,使用原板の横サイズ,原板の縦サイズ,この配置図の歩留まり,部材のコメント,部材の横サイズ,部材の縦サイズ,部材の枚数,配置図番号

エラー番号は214です。

 

/ErrorLog="xxxxxx.txt"

コマンドラインオプションに何らかの間違いがあったときのエラー内容をテキストファイルに出力します。
指定したファイルが存在する場合は最後に内容を追加します。
文字コードは/Encoding=オプションに従います。終了コードを参照。

 

/Encoding=

CSVファイル及びErrorLogの文字コードを指定します。指定できるのは以下のいずれかです。Shift-Jisの場合はANSIを指定します。無指定は ANSI(Shift-Jis)です。
Unicode系はBOM付きテキストファイルとなります。

 

ANSI、ASCII、Unicode、BigEndianUnicode、UTF8、UTF7

 

印刷オプション

内容については「ページ設定」を参照

 

/PrintColumns=

段組数

 

/PrintUnit=

単位 mm または inchi、段組みの間隔と余白に影響する。

 

/PrintBetweenColumn=

段組の間隔

 

余白

/PrintTopMargin=
/PrintBottomMargin=
/PrintLeftMargin=
/PrintRightMargin=

 

ヘッダー・フッター

/PrintHeaderLeft=
/PrintHeaderCenter=
/PrintHeaderRight=
/PrintFooterLeft=
/PrintFooterCenter=
/PrintFooterRight=

 

/PrintFixedRatio=

図の縮尺を同一にする
True, 1 または False, 0 を指定

 

/PrintPartsList=

部材一覧の印刷
True, 1 または False, 0 を指定

 

/PrintNote=

メモの印刷
True, 1 または False, 0 を指定

 

/PrintTotalCost=

単価小計の印刷
True, 1 または False, 0 を指定

 

/PrintUnitCos

単価の印刷
True, 1 または False, 0 を指定

 

/PrintUnitDivYield=

歩留まりで割った単価
True, 1 または False, 0 を指定

 

/PrintSortedPanelList=

部材原板リストのソート
True, 1 または False, 0 を指定

 

/OneDNotation=

1次元の表示
Figure, Text, FigureAndText のいずれかを指定

 

印刷フォント

/PrintFontName=
/PrintFontSize=

 

自動印刷系 - /Print を組み合わせた場合のみに有効

/Print

コマンドラインで指定のrecxまたは/Runで自動計算させたファイルを印刷して自動で終了します。
これより下のオプションは/Printと同時に指定した場合のみに有効です。

 

/PrinterPaperSize=

用紙のサイズを A3, A4, A5, B4, B5 のいずれか、または
https://learn.microsoft.com/ja-jp/windows/win32/intl/paper-sizes
このリンク先の「値」を数値で指定する。

 

/PrinterOrientation=

用紙の向き 以下のいずれかを指定。/Printと同時に指定した場合のみに有効です。
poPortrait ページを垂直方向に印刷する
poLandscape ページを水平方向に印刷する

 

/PrinterCopies=

印刷部数を指定します。/Printと同時に指定した場合のみに有効です。

 

/PrinterName=

使用するプリンタを指定します。スペース付きは""で囲みます。/Printと同時に指定した場合のみに有効です。
例:/PrinterName="Microsoft Print to PDF"

 

/PrintPort=

"Microsoft Print to PDF" をプリンタに指定したとき、PDFにするファイル名を指定します。スペース付きは""で囲みます。/Printと同時に指定した場合のみに有効です。
例:/PrintPort="D:\Test.pdf"

 

未指定の場合は、印刷したときにファイル名をつけるためのダイアログボックスが表示されます。
この機能は、プリンタドライバ側の仕様に依存します。他のPDF作成ソフトでの動作は確認しておりません。

 

終了コード

コマンドラインオプションの指定に間違いがあるなど正常に実行できなかった場合は終了コードに0以外の値が設定されます。
以下は終了コードの値と内容、使い方のサンプルです。終了コードは一つしか出ませんので複数を取得したい場合は/ErrorLog=オプションを利用します。

@echo off
RectPacker.exe /Problem=2D /PartsPanel="parts_test.csv" /StocksPanel="stocks_test.csv" /D=1 /K=3 /R=1 /Run
if %ERRORLEVEL% == 11 echo 強制終了されました.
if %ERRORLEVEL% == 21 echo ライセンスがありません.
if %ERRORLEVEL% == 31 echo 配置できなかった部材があります.
if %ERRORLEVEL% == 51 echo 無効な値です:/Problem=
if %ERRORLEVEL% == 52 echo 無効な値です:/D=
if %ERRORLEVEL% == 53 echo 無効な値です:/K=
if %ERRORLEVEL% == 54 echo 無効な値です:/R=
if %ERRORLEVEL% == 55 echo 無効な値です:/SearchLevel=
if %ERRORLEVEL% == 56 echo 無効な値です:/CutTableLength=
if %ERRORLEVEL% == 57 echo 無効な値です:/MinimumSearchTime=
if %ERRORLEVEL% == 58 echo 無効な値です:/SmallSourcePriorityPoint
if %ERRORLEVEL% == 59 echo 無効な値です: /LengthFormat
if %ERRORLEVEL% == 60 echo 無効な値です: /Precision
if %ERRORLEVEL% == 61 echo 無効な値です: /ConvergenceJudgmentTime
if %ERRORLEVEL% == 62 echo 無効な値です: /RotationalProcessesPriority
if %ERRORLEVEL% == 111 echo ファイルが存在しません.:/PartsPanel=
if %ERRORLEVEL% == 112 echo リストの一部に範囲外の値があります.:/PartsPanel=
if %ERRORLEVEL% == 113 echo 無効なデータです.:/PartsPanel=
if %ERRORLEVEL% == 121 echo ファイルが存在しません.:/StocksPanel=
if %ERRORLEVEL% == 122 echo リストの一部に範囲外の値があります.:/StocksPanel=
if %ERRORLEVEL% == 123 echo無効なデータです.:/StocksPanel=/FirstUsageStocksPanel=
if %ERRORLEVEL% == 131 echo ファイルが存在しません.:/FirstUsageStocksPanel=
if %ERRORLEVEL% == 132 echo リストの一部に範囲外の値があります.:/FirstUsageStocksPanel=
if %ERRORLEVEL% == 141 echo 利用できない名前が指定されています.:/Material=
if %ERRORLEVEL% == 201 echo 無効な値です:/Encoding=';
if %ERRORLEVEL% == 211 echo 配置済み部材データの出力ができませんでした.
if %ERRORLEVEL% == 212 echo 配置済原板データの出力ができませんでした.
if %ERRORLEVEL% == 213 echo 残材データの出力ができませんでした.
if %ERRORLEVEL% == 214 echo 結果のテキストを保存の出力ができませんでした.
if %ERRORLEVEL% == 221 echo エラーコードリストの出力ができませんでした.
if %ERRORLEVEL% == 231 echo 無効な値 部材の向き /PartsLayout= (LeftTop, LeftBottom, RightTop, RightBottom)
if %ERRORLEVEL% == 241 echo 無効なプリンタ名 /PrinterName=
if %ERRORLEVEL% == 242 echo プリンタの指定ができません.
if %ERRORLEVEL% == 243 echo 無効な値 /PrinterOrientation= (poPortrait, poLandscape)
if %ERRORLEVEL% == 244 echo 印刷向きが設定できません.
if %ERRORLEVEL% == 245 echo 無効な値 /PrinterCopies=
if %ERRORLEVEL% == 246 echo 印刷部数の設定ができません.
if %ERRORLEVEL% == 247 echo 印刷でエラーが発生しました.
if %ERRORLEVEL% == 250 echo 無効な値 /PlacementRemnants1D= (lrProcesses, lrRemnants)
if %ERRORLEVEL% == 300 echo 無効な値 印刷段組数 /PrintColumns
if %ERRORLEVEL% == 302 echo 無効な値 印刷単位 /PrintUnit
if %ERRORLEVEL% == 303 echo 無効な値 段組の間隔 /PrintBetweenColumn
if %ERRORLEVEL% == 304 echo 無効な値 余白 /PrintTopMargin
if %ERRORLEVEL% == 305 echo 無効な値 余白 /PrintBottomMargin
if %ERRORLEVEL% == 306 echo 無効な値 余白 /PrintLeftMargin
if %ERRORLEVEL% == 307 echo 無効な値 余白 /PrintRightMargin
if %ERRORLEVEL% == 331 echo 無効な値 印刷フォントサイズ /PrintFontSize
if %ERRORLEVEL% == 340 echo 無効な値 印刷用紙サイズ /errPrinterPaperSize
pause

 

 

ウインドウズストアアプリ版でコマンドラインオプションを利用する方法
(ストアアプリは現在配布しておりません)
本来ストアアプリはコマンドラインオプションを利用できないのですが

 

"Cutting Planner CMD Support tool" を使うことで利用可能です。
エラーコードは出ませんので/ErrorLog=でファイルにしてから参照します。

 

使い方:
上記のリンク先からダウンロードする。
CuttingPlannerCMD.exe と StartCuttingPlanner.bat を同じフォルダに入れる。
CuttingPlannerCMD.exe にコマンドラインオプションを付けて実行する。

 

仕組み:
CuttingPlannerCMD.exe はコマンドラインオプションをテンポラリファイルとして保存し、StartCuttingPlanner.batを起動します。
StartCuttingPlanner.bat はスタートメニューの検索にCutting Planner という文字を直接入れて実行します。
ストアアプリのCutting Plannerは直前に作られたテンポラリファイルを検索しその内容を参照します。
テンポラリファイルを削除します。