iLogicのReplace関数に関する質問

97 views
Skip to first unread message

宇治抹茶

unread,
Nov 17, 2016, 8:36:24 PM11/17/16
to Autodesk Inventorユーザ会
お世話になっております。宇治抹茶です。

アセンブリファイル上に同一のあるiptファイル(仮にA.ipt とします)を複数個置いた場合、

「A.ipt:1」、「A.ipt:2」・・・という風に末尾に番号がついてファイルが並びますよね?


例えばこれを奇数個目のファイルを「B.ipt」、偶数個目を「C.ipt」にReplace関数で置き換えた場合、

「A.ipt:1」、「A.ipt:2」、「A.ipt:3」、「A.ipt:4」・・・
「B.ipt:1」、「C.ipt:1」、「B.ipt:2」、「C.ipt:2」・・・

となります。この末尾の番号を何とか変えず、

「B.ipt:1」、「C.ipt:2」、「B.ipt:3」、「C.ipt:4」・・・

という風に並べたいのですがどんな関数を組めばいいでしょうか。


末尾の番号(下のiLogicの場合 l )の条件によって

 Component.Replace("A.ipt:"& l, "B.ipt:"& l, False) 

という関数を書いてはみましたがこれだと

「指定されたパスのフォーマットはサポートされていません。」

というエラーが出ます。お手数ですがご教授をお願いします。

やまら

unread,
Nov 17, 2016, 8:54:39 PM11/17/16
to Autodesk Inventorユーザ会
こんにちわ。

末尾につく数字は、謎が多くて、制御するのは難しかなぁと思います。
どうしてもってことなら、2番目のA.iptをC.iptに置換する前に、
ダミーでどこかにC.iptを配置して、そいつを1番にすれば、
置換したものは2番になります。

ブラウザに表示される文字は任意に指定できるので、それでオーバーライドして
"C.ipt:2"にしても良いですが、その場合は、のちに"d.ipt"に置換しても表示は"C.ipt:2"のままです。(確か)

宇治抹茶

unread,
Nov 17, 2016, 9:11:32 PM11/17/16
to Autodesk Inventorユーザ会
なるほど、そうなのですか。

ありがとうございます。


もう一つ質問なのですが、逆に前から順番に

「B.ipt:1」、「C.ipt:1」、「B.ipt:2」、「C.ipt:2」

並んでいるものを一発で

「A.ipt:1」、「A.ipt:2」、「A.ipt:3」、「A.ipt:4」

と置換するiLogicはご存じないですか?

今やってるやり方ではコンポーネント欄の「すべて置換」で一括置換すると

「B→A」、「C→A」の順番に作動するため、

「A.ipt:1」、「A.ipt:3」、「A.ipt:2」、「A.ipt:4」

となります。このあとで「アセンブリ」タブ内の「生産性」欄中の

「ブラウザノード名を変更」でファイル名を選択すると前から

「A.ipt:1」、「A.ipt:2」、「A.ipt:3」、「A.ipt:4」

の順番にはなります。

しかし、この作業は手順が多いので作業者にはややこしいかも思うので

何とか1クリックでできないかなと考えています。

ご教授願えませんでしょうか。

やまら

unread,
Nov 17, 2016, 9:18:57 PM11/17/16
to Autodesk Inventorユーザ会
それを一発で・・・てのは、たぶん無いですね。
自分でリストを作って、頭から順番に置換していくしかないと思います。

宇治抹茶

unread,
Nov 17, 2016, 9:20:09 PM11/17/16
to Autodesk Inventorユーザ会
うーん、やはりそうですか。

では作業者には今の方法を何とか覚えてもらうしかないですね。

ご教授ありがとうございました。

やまら

unread,
Nov 17, 2016, 9:29:41 PM11/17/16
to Autodesk Inventorユーザ会
> 自分でリストを作って、頭から順番に置換していくしかないと思います。

と書いたのは、上記のようなマクロを組めば良いということです。
Reply all
Reply to author
Forward
0 new messages