PARTsolutions TIP 64:生成されるCADデータのファイル名を変更したい
PARTsolutionsからCAD転送で生成されるCADデータのファイル名は、通常以下の赤枠で囲った箇所の値になります。
生成されたCADデータです。一致していることが確認できます。
これを変更し、たとえば「先頭に自社を示すプリフィックスを加えたい」「CADのバージョン名を加えたい」「メーカー名を加えたい」「英数字以外はすべて_に変換したい」等が必要な場合もあるかと思います。今回はこれを行ってみたいと思います。例にあげた項目をすべて設定する例で解説します。
PARTadminを起動し、「$CADENAS_SETUP/ifsolidworks.cfg」を選択します。右側の「CreateOptions(is3d)~」以下の「FileName」キーの値で設定します(赤枠)。上がsldprtファイルの名前、下はsldasmファイルの名前です。
FileName(isCreaOptNotSet,is3dpart)=?"CNS_"+_FORMAT_0("<CATALOG>_<GENNAME>").alnum("_").value()+"_SOLIDWORKS"+application.cadVersion+".sldprt"
FileName(isCreaOptNotSet,is3dasm)=?"CNS_"+_FORMAT_0("<CATALOG>_<GENNAME>").alnum("_").value()+"_SOLIDWORKS"+application.cadVersion+".sldasm"
CADデータを生成してみましょう。次の画像の下がそれです。デフォルト設定とは名前が変わっていることが確認できます。
以下が設定した値についての解説です。少々ごちゃごちゃしていますが仕様なのでこれは如何ともし難く、、、
?"CNS_"+_FORMAT_0("<CATALOG>_<GENNAME>").alnum("_").value()+"_SOLIDWORKS"+application.cadVersion+".sldasm"
値先頭の「?」:これは、値の中にマクロが入っている場合文字列ではなくマクロとして処理するためのマークです。仮に「"CNS_"+_FORMAT_0("<CATALOG>_<GENNAME>").alnum("_").value()+"_SOLIDWORKS"+application.cadVersion+".sldprt"」と先頭の?がない値を設定すると、このままの文字列がファイル名となってしまいます。
“CNS_”:ファイル名の先頭に「CNS_」という文字をつける記述です。文字は””でくくります。
_FORMAT_0("<CATALOG>_<GENNAME>").alnum("_").value():マクロ処理です。「<CATALOG>」はパーツのメーカー名に置換され、「<GENNAME>」は冒頭にあげた値に置換されます。続く「almun(”_”)」は英数字以外を_(アンダーバー)に置換するためのマクロです。最後の「.value()」は文字を出力するマクロです。お約束だと思ってつけてください。
"_SOLIDWORKS"+application.cadVersion+".sldasm":「”_SOLIDWORKS”」は”“でくくられているので単なる文字です。続く「application.cadVersion」はSolidworksのバージョンに置換するマクロです。この例ではSolidworks2017を使っているので「2017」という値になります。「”.sldasm”」も文字で拡張子です。
sldprtファイル用とsldasmファイル用の設定の違いは、末尾の拡張子だけです。逆に個別に設定することもできますので、sldasmファイルとsldprtファイルで命名ルールが異なる運用にも対応することができます。
<GENNAME(25)>:冒頭赤枠で囲った値に最大文字数を指定します(これは25文字)。パーツによっては100文字以上となる場合のありますので、その際CADシステム側で長いファイル名を受け付けないときの対策等に使用できます。
ToLower():すべての文字を小文字に変換します。
MaxLen(28):最終的な値の最大文字数を制約します。この例は28文字に制限します。
toFileName("_"):一般的な禁則文字を「_」に置換します。
RepSeq(";,_"):値を置換します。この例は「;」を「_」に置換します。
add(".sldasm") :文字を追加します。この例は「.sldasm」という文字を追加しています。
?_FORMAT_0("<GENNAME(25)>").toFileName("_").RepSeq(";,_").ToLower().MaxLen(28).add(".sldasm").value()
拡張子の前のファイルベース名までで28文字に制限、小文字に変換され、最後に拡張「.sldasm」が加わり、最終的なファイル名となります。
※その他のPARTsolutions TIPを見たい場合はインデックスからどうぞ
PARTsolutionsユーザ事例や最新ソリューション、PARTcommunity新規参加サプライヤ/既存サプライヤ3Dデータ追加情報など、CADENASの最新情報をお届けする公式WEBサイトです。
http://www.cadenas.co.jp/jp/news