先日のアップデート(2.0.8335)において、インプレイス編集時の新たな概念として「アセンブリコンテキスト」というものが採用されたようです。
相手部品のジオメトリを参照したときに参照元のボディがどれなのか等の情報を記録しコントロールするものだと思います。
このなかでローカルコンテキストとジオメトリを参照した時にできる新規コンテキスト、それから再度編集しようとしたときにダイアログ中に現れる既存コンテキストの新しい言葉が出てくるのですが、これらの挙動や違いについて知っておられることがあれば情報をお寄せください。
今一番分からないのは「ローカルコンテキスト」とは何ぞや?ということです。
色々検証していただけると非常に助かります。
なんだかよくわからないまま検証してみました。
インプレイス編集してから元の画面に戻り、新しいコンポ―ネントを作成して、またインプレイス編集して・・・
という手順でやると、「既存のアセンブリコンテキストを編集するか?」というダイヤログは出ずに、
自動的に新規のコンテキストが作成されることは分かりました。
①初めてのインプレイス編集
(shikakuをmaruで切り取ってみた)
②元の画面で新規コンポーネントsankaku追加
③2回目のインプレイス編集(「既存のコンテキストを~」のダイアログは出なかった)
④もとの画面に戻ると、インプレイス編集の履歴が2つになっていることがわかる
※ただし、この履歴を開いたところで、表示されるのは同じ履歴なのが、ちょっと解せませんね・・・
それぞれコンテキスト1、2がアクティブにはなっているのに。
なんの解決策にもなっていませんが(笑)、なにかの参考になれば幸いです・・・
追記:
(ってことは、ローカルはここでいうshikakuのことなのかなあと思いました。
コンテキスト1がmaru、コンテキスト2がsankakuで編集したはずのものなので)
Miyuki Shibuya
Twitter
補足情報
アセンブリコンテキストについて
Assemblies Edit-in-Place Preview is Coming to Fusion 360
神原Θ友徳(かんばらΘとものり)Tomonori Kanbara -JAPAN-
この投稿が参考になりましたら、「いいね」を押してください。
この投稿で問題を解決できましたら、「解決策として承認」ボタンを押してください。
自分が感じたところでは、
『ローカル』はそのコンポーネントだけで完結する編集を行ったときのログ
『コンテキスト』では、他のコンポーネントと関係がある編集(最初にされていたように、別コンポーネントをプロジェクトする、など)を行ったときのログ
ぐらいかな、と感じています。
1. 既存のアセンブリコンテキストを編集しますか、が表示されるときと表示されないときがある
このメッセージがどういったときに出るかが分かったので報告します。
次の画像に示すように、インプレイス編集は履歴に残るんですが、ここにマウスを重ねてみると、このときにどのコンポーネントを編集したか、とどのコンテキストを使用したか、(つまりどのボディを参照したか)が表示されるようになってます。
このときは、コンポーネントtest1に対して、そのコンポーネントに含まれるコンテキスト1に記載されたボディを参照して編集したよ、という風になってます。
ここで、次にどのコンポーネントに対してインプレイス編集するかでメッセージが出るか否かが変わるようです。
この状態で、再度test1に対してインプレイス編集すると、以下のようなメッセージが出ます。
しかし、ここでキャンセルして別のコンポーネントに対し、インプレイス編集を行うと、メッセージは出ず、新たなコンテキストが作成されました。
つまり、このメッセージは既存の物を編集するか、というよりさっきの編集の続きやる?くらいのことなのかもしれません。
他のコンポーネントを参照する以上、間にインプレイス編集が入ると、あらたなコンテキストを作らないといけないのかもしれません
(ちなみに、ですがコンテキストのボディの名前でボディ1の次がボディ2でなくてボディ1(1)になります。すぐに直せそうなバグではありますが)
@tomo1230 さんに紹介してもらった記事を読んでいます。
エディットインプレイス機能(EIP)はXREFという外部参照ファイルにアクセスしてそれに対して変更をかけるという仕組みみたいですね。XREF(externally referenced file)は参照元と連携しているのでアセンブリから編集をしたら元ファイルも変わるということみたいです。
またEIPはアセンブリとXREFとの間の関係もコントロールできてこの仕組みのことをアセンブリコンテキスト(Assembly context)と呼んでいるようです。
ひとまず今日分かったところまでご報告です。
ローカルとコンテキストの違い、何となく分かってきました。
こういうアセンブリファイルがあって、
初めてtest1をインプレイス編集すると、最初は「ローカル」しか存在しません。
ここから相手側の部品(コンポーネント)のエッジを参照して投影スケッチを作ると「コンテキスト」という項目が出てきます。
スケッチを使って押し出した状態。
インプレイス編集モードから抜けると、既に参照していたボディに変更が加わったということで関連するアセンブリコンテキストに更新のフラグが立ちます。
アセンブリコンテキストを同期。
おそらくこれでXREF(外部参照ファイル)の中にどの時点のコンポーネントボディを反映したかという情報を書き込んでいるのだと思います。
これまでに分かったことを整理すると、
間違っているかもしれませんが、今のところの理解です。
ただこれ名前の付け方が良くないですね~。
ローカルは「単独コンテキスト」、コンテキストは「連携コンテキスト」みたいにしないと混乱しそうです。
また何か分かったら情報を上げます。
追加情報です。
一旦どこかのアセンブリファイルで参照された部品には、単独で開いたときにも「アセンブリコンテキスト」の項目が現れ、コンテキストをアクティブにすると相手側の部品が半透明で見えるようになります。
分かりやす解説ありがとうございます。
「アセンブリコンテキスト」機能についてはVer2.0.8335からだと思うのですが、
「EIP」や「XREF」と言った用語もVer2.0.8335からですよね?
(↑理解を困難とさせる原因)
@kandennti さん、
EIP (Edit In Place = インプレイス編集)自体はもう一つ前のバージョンからですね。
XREF (External Reference File = 外部参照ファイル)はVer2.0.8335からのはずです。
このあたり@tomo1230 さんに紹介してもらった下記リンクを現在解読中です。
アセンブリコンテキストについて分かったことが出てきたのでお知らせします。
親アセンブリを削除してから子部品(=挿入しているコンポーネント)を開いてみました。
他の部品のジオメトリを参照してモデリングしていましたのでアセンブリコンテキストが作られていますが、親アセンブリを削除してしまっていますので、「アセンブリコンテキストが親と同期していない」旨のメッセージと警告マークのアイコンが現れています。
ここでコンテキストの一つをアクティブ化すると、ジオメトリを参照していたコンポーネントが半透明で見えてきます。
これらの動きからアセンブリコンテキストの仕組みを推測してみました。
間違いがあるかもしれませんのでまた皆さんで検証いただけると助かります。
次はアセンブリコンテキストと履歴の関係について解明していこうと思っています。
アセンブリコンテキストの仕組みについてこれまで検証してきた内容を1枚にまとめてみました。
アセンブリファイルはコンポーネントの位置関係を制御しその情報を形状データとともにXREFに吐き出す。
実際に形状変更がなされるのは各パーツファイル内で、その際にXREFの情報を参照として使う
形状変更が終わればアセンブリファイル内に反映される
ということのようです。
もし、ここはおかしいんじゃない?ということがあれば情報をお寄せください。
アセンブリコンテキストの下には「ローカル」と「コンテキスト」という2つの項目がぶら下がっています。
この内、ローカルはパーツ単独での編集モードのことを指すようです。
ローカルをアクティブにすると他のパーツが非表示になっています。
コンテキストをアクティブにすると、読み込んだXREF(外部参照ファイル)を表示させて参照しながら編集できるモードになるようです。
adachitech7さんへ こんばんは
コンテキストとXREF(外部参照ファイル)との関係について
色々と検証して頂き、ありがとうございます。
難しい事は判らないのですが、アッセンブリを作っていく中で
① ブラウザのパーツの右横にでる鉛筆マーク(インプレイス編集)と
アセンブリコンテキスト内のローカルのコンテキストをアクティブ化は同じ意味。
② アセンブリコンテキスト内のコンテキスト1は、外部参照をした場合に表示される。
再度外部参照した場合に、新規のコンテキストか既存のコンテキストかを選択できる。
もし、外部参照の相手部品が違う場合は、新規のコンテキスト(2)を使った方が
相手部品が見つけやすい。
このように理解したのですが、大丈夫でしょうか?
Hidetoshi Wada
Mechanical designer
① ブラウザのパーツの右横にでる鉛筆マーク(インプレイス編集)と
アセンブリコンテキスト内のローカルのコンテキストをアクティブ化は同じ意味。
鉛筆マーク(インプレイス編集)は「開いているアセンブリファイル内で子コンポーネントを編集する」という機能だと思います。そこから先のオプションがさらに2つに枝分かれしていて、
という機能のようです。そして他の部品を参照する仕組みとしてXREF(外部参照ファイル)を用いている感じですね。
② アセンブリコンテキスト内のコンテキスト1は、外部参照をした場合に表示される。
再度外部参照した場合に、新規のコンテキストか既存のコンテキストかを選択できる。
もし、外部参照の相手部品が違う場合は、新規のコンテキスト(2)を使った方が
相手部品が見つけやすい。
子コンポーネントを編集する際に参照しているのは同じアセンブリファイル内にある他の部品(コンポーネント)なのでそういう意味では「内部参照」になります。その内部参照している部品の形状データと位置情報をXREFという不可視の別ファイルとして吐き出していて、その情報を個別のファイルが参照しているので「外部参照」ですね。アセンブリ外にXREFという外部参照ファイルがあるということです。
このXREFという外部参照ファイルはアセンブリ内で他の部品のジオメトリを参照して連携させたときに生成され、インプレイス編集を開始する時に新規で作るか既存のXREFに追加で書き込むかを選択できるということです。そしてこのXREFをアセンブリ内や単独ファイル内に呼び出す窓口がアセンブリコンテキスト内のコンテキストということになります。新規のコンテキストを作るということは別のXREFを作るということと同じです。
新規のXREFを作るか、既存のものに追記するかは運用の話になるので管理しやすいやり方を選択する感じかと思います。
このあたりは今追加で検証中です。