wasabi
新人さん
オフライン
投稿: 9
I'm a llama!
|
|
超・初心者です・・・
« 投稿日: 2015/02/07 - 04:01:55 » |
|
例えば、1.x_t と 2.x_t という2つのパラソリッドデータがあったとして、普通に開くと、1.sldprt と 2.sldprt というウインドウが開きます。 この2つのモデルを、新規作成した部品ファイルに挿入するにはどうすればよいのでしょうか? (assemファイルではなく、部品partファイルに挿入したいのですが・・・可能でしょうか?)
すごく、初歩的な質問で申し訳ないですが・・・宜しくお願いします。
|
|
|
|
hiropon
Sr. メンバー
オフライン
投稿: 84
I'm a llama!
|
|
Re:超・初心者です・・・
« 返信 #1 投稿日: 2015/02/07 - 07:33:04 » |
|
wasabiさんこんにちは
要約すると 1.sldprt のモデル形状と 2.sldprt のモデル形状を ひとつの 部品ファイルに配置したい(希望の位置に配置) ということですよね??
私のやり方なのですが、 一旦やはりAssemblyファイルを経由して しまうのですが、Assemblyファイルでそれぞれを希望の位置に合致 させ その後 結合というコマンドを使って ひとつの部品ファイ ルに結合します。(結合というキーワードで一度ヘルプで調べてみ てください
ただし 私もこのやり方が一番効率的なものかは疑問です もっと パッパ とできないものかと いつも 思っている操作です
ここからは 私の質問になるのですが たとえば ボディが複数ある部品ファイルがあったとして その中の ひとつのボディを 違う部品ファイルへ パッパと移植 する ということはできるのでしょうか??
移植さえできれば あとは ボディの移動を駆使すれば 希望の 位置に持っていくのは容易なのですが、 どうしても移植の操作で Assemblyを経由しているのが 非効率に思えてならないのが現状 です
|
|
|
|
webmaster 管理人
議長 カタマリの王様!?
オフライン
投稿: 649
|
|
Re:超・初心者です・・・
« 返信 #2 投稿日: 2015/02/07 - 12:45:23 » |
|
一旦パラソリッドからSOLIDWORKSの部品に変換済みという前提なら、文字通り「挿入」→「部品」でできると思います。
|
webmaster (仕事のカタマリ管理人)
|
|
|
wasabi
新人さん
オフライン
投稿: 9
I'm a llama!
|
|
Re:超・初心者です・・・
« 返信 #3 投稿日: 2015/02/08 - 04:54:36 » |
|
お返事ありがとうございます!
私事ですが、転職しまして、SOLIDWORKSを使うことになったのですが、 会社でSOLIDWORKSを使いこなせる方がいなくて、 このレベルの悩みごとで、2ヶ月くらい悩んでいました・・・
回答いただきました、お二方のおかげで無事、問題解決しました。 もっと早くこのサイトを知っていればよかったー!
本当にありがとうございます!
|
|
|
|
hisa
カタマリの王様!?
オフライン
投稿: 507
PANDA-Z!!
|
|
Re:超・初心者です・・・
« 返信 #4 投稿日: 2015/02/09 - 13:07:21 » |
|
wasabiさん、はじめまして
単一部品のParasolidデータ(*.x_t)であれば、新規部品で[挿入]→[フィーチャー]→[インポート]で、直接取り込むことができますよ
|
|
|
|
wasabi
新人さん
オフライン
投稿: 9
I'm a llama!
|
|
Re:超・初心者です・・・
« 返信 #5 投稿日: 2015/02/10 - 03:49:41 » |
|
hisaさん、はじめまして。
ありがとうございます! この方法は、まさしく私がやりたかった事、そのものでした。 本当に助かりました!
|
|
|
|
wasabi
新人さん
オフライン
投稿: 9
I'm a llama!
|
|
Re:超・初心者です・・・
« 返信 #6 投稿日: 2015/02/10 - 04:23:10 » |
|
えっと、実は超初心者的な質問がもう一つありまして、
3次元的な曲面上で、+X,-X,+Y,-Y,+Z,-Z方向に、一番出っ張っているポイントに点を打つ方法はありますでしょうか?
質問ばかりで申し訳ないです・・・
|
|
|
|
hisa
カタマリの王様!?
オフライン
投稿: 507
PANDA-Z!!
|
|
Re:超・初心者です・・・
« 返信 #7 投稿日: 2015/02/10 - 16:09:20 » |
|
wasabiさん、こんにちは
追加の質問の件は、ベテランでも悩む問題です・・・
いわゆる「バウンディングボックス」を取得する必要があるのですが、僕の知る範囲で一発で情報を得ることはできません。
wasabiさんの添付画像にある方法で、測った最短距離分だけ外側の箱の面をオフセットして3Dスケッチで対象形状の面とオフセットした面に一致するスケッチ点を挿入するのがひとつの方法となりますね。
参照平面の作成で、対象形状に正接する面を作成することも考えましたが、自由曲面の場合は実行できませんでした・・・
他の方法としては、[挿入]→[溶接]→[溶接]で溶接フィーチャーを挿入してから、フィーチャーマネージャーツリー上に現れる「カットリスト」を右クリック→[境界ボックスの作成]を選択することで、対象形状(ボディ)を囲むバウンディングボックスが作成されますが、ご丁寧にボックスサイズが小さくなるように(?)傾いた状態でボックスが作成されます。 (溶接部品の場合、鋼材等の長さを得るために最小となるボックスである必要があるので、機能としては間違っていませんが) いずれにせよ、最大凸位置を得るためにだけに溶接フィーチャーを挿入するのはナンセンスな気もします。
最終的な方法としては、マクロを使って「バウンディングボックス」を得るしか無くなるのですが、プログラミングスキルが必要です。
とりあえず、SolidWorks APIヘルプにあったサンプル「Get Part Bounding Box Example (VBA)」を使って、バウンディングボックスの対角点を作成するマクロを作成してみました。
これがwasabiさんの目的に合致するものかは分かりませんが、試してみて下さい
|
|
|
|
wasabi
新人さん
オフライン
投稿: 9
I'm a llama!
|
|
Re:超・初心者です・・・
« 返信 #8 投稿日: 2015/02/11 - 04:46:59 » |
|
hisaさん、ありがとうございます
一番出っ張っているところに点を打つのは、SOLIDWOKSでは、なかなか難しいのですね。
マクロまで作成していただいて、本当にありがとうございます。
ただ、まだマクロの使い方を知らないので、勉強して使ってみます。
|
|
|
|
hiropon
Sr. メンバー
オフライン
投稿: 84
I'm a llama!
|
|
Re:超・初心者です・・・
« 返信 #9 投稿日: 2015/02/11 - 11:22:14 » |
|
hiroponです 上記では私の今までの非効率なモデリングのやり方を改める きっかけになりました ありがとうございました
このご質問内容も なかなか難しいものだと思います
マクロを使うならこれかな?と思いました 動作確認はできてません
closestDistance Method (IModelDoc2)
Function ClosestDistance( _ ByVal Object1 As System.Object, _ ByVal Object2 As System.Object, _ ByRef Point1 As System.Object, _ ByRef Point2 As System.Object _ ) As System.Double
これだと 両者の点が返ってくるので 後で スケッチ点を そのポイントに打てばよいのかな?と思っています
こんなメソッドがあるということは マクロ組まずともコマンド であるのかな とも思ってしまいますが、、、見つけるに至って いません
|
|
|
|
wasabi
新人さん
オフライン
投稿: 9
I'm a llama!
|
|
Re:超・初心者です・・・
« 返信 #10 投稿日: 2015/02/12 - 21:15:27 » |
|
hiroponさん、こんばんは。
この一番出っ張っているポイントに点を打つというのは、 前の職場で使っていたCADにあった機能で、 しばしば使う機会があったのでSOLIDWORKSでも同じ事ができたらいいなぁと思っていました。
ただ、そんなに簡単ではなさそうですね。。。
皆さんのレベルに行くまで、ものすごく長い道のりの気がしていますが・・・ 勉強、頑張ります。ありがとうございます!
|
|
|
|
hiropon
Sr. メンバー
オフライン
投稿: 84
I'm a llama!
|
|
Re:超・初心者です・・・
« 返信 #11 投稿日: 2015/02/12 - 21:26:40 » |
|
hiroponです いつも Webmasterさんや hisaさん Makoronさん たちに サンプルでお世話になりぱなっしなので たまには私がサンプルを
Dim swApp As SldWorks.SldWorks
Dim Part As ModelDoc2 Dim boolstatus As Boolean Dim longstatus As Long, longwarnings As Long Dim retObject1 As Object Dim retObject2 As Object
Set swApp = _ Application.SldWorks
Set Part = swApp.ActiveDoc Dim selmgr As SelectionMgr Set selmgr = Part.SelectionManager If (selmgr.GetSelectedObjectCount <> 2) Then
Else Set retObject1 = selmgr.GetSelectedObject6(1, -1) Set retObject2 = selmgr.GetSelectedObject6(2, -1)
Dim dis As Double Dim pt1 As Variant Dim pt2 As Variant dis = Part.ClosestDistance(retObject1, retObject2, pt1, pt2) Part.SketchManager.Insert3DSketch True Dim skPoint As Object Set skPoint = Part.SketchManager.CreatePoint(pt1(0), pt1(1), pt1(2)) Set skPoint = Part.SketchManager.CreatePoint(pt2(0), pt2(1), pt2(2)) Part.SketchManager.Insert3DSketch False skPoint.GetSketch.Name="ClosestDistancePoint" End If
最短距離ですので 2つ(のオブジェクト)を選択する必要が あります 選択が2つでない場合は何もおこならいように組みました。 動作確認は "アセンブリ中の部品(コンポーネント) の面を選択"で問題ないことを確認しています
距離測定はどのオブジェクトでもいけそうなのですが検証が 必要です
|
|
|
|
hiropon
Sr. メンバー
オフライン
投稿: 84
I'm a llama!
|
|
Re:超・初心者です・・・
« 返信 #12 投稿日: 2015/02/12 - 21:29:54 » |
|
Wasabiさん こんばんは
コマンドでもあるかもしれないのですが マクロを作ってみました 実行すると 最短距離と認識した2点に3Dスケッチで点が打たれます
ためしてみてください
|
|
|
|
wasabi
新人さん
オフライン
投稿: 9
I'm a llama!
|
|
Re:超・初心者です・・・
« 返信 #13 投稿日: 2015/02/12 - 21:30:06 » |
|
また、すみません・・・質問がございます。
私は金型の設計業務に携わっておりまして、 外注さんで設計したデータを頂いて、参照することも多いのですが、 外注さんでレイヤ分けされたデータ(igsデータ)が、SOLIDWORKSで読み込むと、 まったくレイヤ分けされずに、ひとつのサーフェスボディとして表示されてしまったりして、非常に参照しづらい事がよく有ります。
こういった事態に何か対処する方法はあるでしょうか?
|
|
|
|
hiropon
Sr. メンバー
オフライン
投稿: 84
I'm a llama!
|
|
Re:超・初心者です・・・
« 返信 #14 投稿日: 2015/02/12 - 21:44:05 » |
|
すみません 現物をみたことがないのでいまいちイメージが わかないのですが 金型屋さんということは お客様より提供いただく3Dデータは 1部品ごとだと思うのですが、組み立て図で提供されるという ことですか?
それとも Solidworksでいう カットや押し出し等の履歴が 全て消滅している ということをおっしゃっていますか??
|
|
|
|
wasabi
新人さん
オフライン
投稿: 9
I'm a llama!
|
|
Re:超・初心者です・・・
« 返信 #15 投稿日: 2015/02/13 - 05:02:43 » |
|
hiroponさん
マクロ作成していただきまして、ありがとうございます! すみません、いただいていた事に、今気付きました(^^;)
それで、レイヤの話なのですが、お客様から頂くデータは確かに1部品で、それを元に、外注の金型屋で金型を設計します。 (外注さんで使っているキャドはSOLIDWORKSではないです・・・) その金型のモデルが部品ごとにレイヤ分けされているのですが、 SOLIDWORKSでそのモデルを開くと、そのレイヤが無視されてしまうようです。 SOLIDWORKSにはレイヤが無いのでしょうか・・・?
これは、外注さんにお願いして、1部品ずつデータを分けてもらうしか、ないですかね
|
|
|
|
hiropon
Sr. メンバー
オフライン
投稿: 84
I'm a llama!
|
|
Re:超・初心者です・・・
« 返信 #16 投稿日: 2015/02/15 - 11:08:21 » |
|
hiroponです
返信内容からすると キャビティやコア、スライドコア その他の要素部品が 全て同一のボディとして あらわされるデータになるということ ですか?
Solidworksの部品データには 私の知る限りレイヤーという概念 はないと思います。 一度やりとりのデータ形式を変更してみてはいかがでしょうか? Ex)Iges→Parasorid
それでも解決しない場合は 相手に一点一点部品化してもらうか しかないと思います
|
|
|
|
wasabi
新人さん
オフライン
投稿: 9
I'm a llama!
|
|
Re:超・初心者です・・・
« 返信 #17 投稿日: 2015/02/19 - 03:33:11 » |
|
hiroponさん
返信ありがとうございます! おっしゃるとおりの悩み事でした。
やはり、レイヤが無いのですね・・・ どうもありがとうございました!
|
|
|
|