キッチンのシンク制作(製作)

30年前に一度作ったことがある。溶接箇所をなるべく少なくしてつくった。こんなかんじ。

展開図も作ってみました。サーフェスです。参照スケッチが活躍します。

サーフェースでないと展開できない部分がある。溶接線を減らすためです。

球をカクカクした面で描けばSolidworksの板金で展開できる。展開図は最後の最後に見えます。

この動画は大量生産っぽい。バフ研磨で溶接箇所がわからなくなるが、いもつじというハンマーで丁寧にならしてから研磨です。これ手作業で作る話。高価なソリッドワークスを加工のために使うとゆう?。そう簡単に展開図作れない。球面があるから。溶接のための展開図と地球儀を作る葉っぱみたいな展開図とは違う。

これは板金屋にはできない。大きなプレスがいるわ。

設計テーブル グローバル変数、角エルボで

最後の方でExcelを削除して、コンフィグレーションが残るのを確認しているが、コンフィグレーション作成が一挙にできるので便利です。

それにしても、グローバル変数をExcelの項目名に使うのが珍しい。普通に寸法名を使うのが簡単です。

そもそも、グローバル変数って名前はどうなんでしょう。単に変数じゃだめなんかな。グローバルが付く。テキストファイルやExcelでいろいろ変更できるが、別にグローバル変数はいらない。

相関線 その2

以前にも書いたが動画で肝心の展開が飛んでいた。

今回はきっちりと展開図があります。コンフィグレーションを使って展開図ができる状態、2つの管が組んでる状態がある。

展開可能にするには「シェル化」は使わない。ここでも展開するので「押し出しカット」を使って穴を空ける。

球やアールを展開図にする

アールはともかく球は展開図にできない。サッカーボールは球だが、複数の六角形の展開図でボールっぽく作ることができる。だから、細かくすれば球に見える。

ソリッドワークス/SolidWorksの板金のタブの「とめつぎフランジ」は、スケッチで直線を書くとフランジを作ってくれる。いろいろな角度があり、複雑な形状を描く場合は便利です。次図は、直線をアールっぽく、底を12多角形で円っぽく。

球の1/8やアールが多いと加工がしにくい。溶接するとなると直線的で短い方がひずみ、研磨が少なくていい。

参考にこっちも。

展開は最後の最後にしてます。

正三角錐 板金展開図

  1. 板金に変換
  2. とめつぎフランジ
  3. エッジフランジ

上記は板金のタブにあるコマンドです。正三角錐を上記のコマンドで作成します。

その前に経過説明。

ソリッドワークス/Solidworksを使い始めて、同僚から「三角錐」って作るの難しいよ」と言われる。

確かに、「押し出しボス」を多用するのでななかなか斜めに描くことは慣れていなし。それに、斜面がある図面って3Dではなく三面図なんかでは読図が難しい。

以前にこんなのアップしている。

高評価もいただいている。m(_ _)m。

時は随分と経って、技能もアップしたので以下の展開図可能な正三角錐を作った。順に、

  1. 板金に変換
  2. とめつぎフランジ
  3. エッジフランジ

角エルボ(出入り口のサイズ違い)

入り口と出口のサイズが違い、ねじりや曲げにくい板厚3.2以上を前提に展開図を描く。

ロフトで作ると絞りや打ち出し加工が必要になる。ロフトの作成例

まず、球は展開できない。円筒や面は展開図を作ることができる。面は三角形で考える。

ソリッドワークス/Solidworksのサーフェスを使って展開できない状況を判断する。ロフトを使って3Dモデルを作った。

ロフトで絞り、打ち出しが必要なことを確認。展開サーフェス、変形プロットで確認する。

展開サーフェースを作る時にメッシュ/ワイヤーフレームが見える。サーフェースってワイヤーフレームなんです。CADの表現方法、モデルとして以下の3つある。

  1. ワイヤーフレーム
  2. サーフェース
  3. ソリッド

ソリッドワークス/SolidWorksのサーフェースはワイヤーフレームでもある。

で、

ワイヤーフレームと言えば三角形、展開図ができる最小の面でもある。三角形ができれば2つの直角三角形が作れるので展開図の手法の三角形法が使える。ん。つなげすぎか。

さて、元に話に戻って。

角エルボを作る基本部分の作成方法

展開可能な角エルボの例。出口側は直線の面。

Rの部分は順次変化するように変更。

角ダクトの骨格

以下はマクロ記録を一部修正したます。動画の下に置きたかったが5000文字までという制約で置けませんでした。

Option Explicit

Dim swApp As SldWorks.SldWorks

Dim Part As SldWorks.PartDoc
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long

Sub main()


Set swApp = Application.SldWorks

Set Part = swApp.ActiveDoc
Dim myModelView As Object
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized

Dim skSegment As Object
Set skSegment = Part.SketchManager.Create3PointArc(0.025, 0.084, 0#, 0.118798, 0.029, 0#, 0.088, 0.073, 0#)
Part.ClearSelection2 True
Set skSegment = Part.SketchManager.CreateCenterLine(0.025, 0.084, 0#, 0.109064, 0.084, 0#)
Part.SetPickMode
Part.ClearSelection2 True
boolstatus = Part.Extension.SketchBoxSelect("0.079", "0.058", "0.000", "0.090", "0.095", "0.000")
boolstatus = Part.Extension.SelectByID2("Arc1", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line1", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
Part.SketchAddConstraints "sgTANGENT"
Part.ClearSelection2 True
Part.SketchManager.InsertSketch True
boolstatus = Part.Extension.SelectByID2("平面", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
Part.SketchManager.InsertSketch True

Part.ShowNamedView2 "*等角投影", 7

Part.ClearSelection2 True
boolstatus = Part.Extension.SetUserPreferenceToggle(swUserPreferenceToggle_e.swSketchAddConstToRectEntity, swUserPreferenceOption_e.swDetailingNoOptionSpecified, False)
boolstatus = Part.Extension.SetUserPreferenceToggle(swUserPreferenceToggle_e.swSketchAddConstLineDiagonalType, swUserPreferenceOption_e.swDetailingNoOptionSpecified, True)
Dim vSkLines As Variant
vSkLines = Part.SketchManager.CreateCornerRectangle(0.061, 0.046, 0, 0.11, -0.05, 0)
Part.ClearSelection2 True
Part.SketchManager.InsertSketch True
boolstatus = Part.Extension.SelectByID2("スケッチ1", "SKETCH", 0, 0, 0, False, 0, Nothing, 0)
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("スケッチ1", "SKETCH", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = Part.SelectedFeatureProperties(0, 0, 0, 0, 0, 0, 0, 1, 0, "外側R")
boolstatus = Part.Extension.SelectByID2("スケッチ2", "SKETCH", 0, 0, 0, False, 0, Nothing, 0)
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("スケッチ2", "SKETCH", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = Part.SelectedFeatureProperties(0, 0, 0, 0, 0, 0, 0, 1, 0, "入り口")
boolstatus = Part.Extension.SelectByID2("右側面", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
Part.SketchManager.InsertSketch True
Part.ClearSelection2 True
boolstatus = Part.Extension.SetUserPreferenceToggle(swUserPreferenceToggle_e.swSketchAddConstToRectEntity, swUserPreferenceOption_e.swDetailingNoOptionSpecified, False)
boolstatus = Part.Extension.SetUserPreferenceToggle(swUserPreferenceToggle_e.swSketchAddConstLineDiagonalType, swUserPreferenceOption_e.swDetailingNoOptionSpecified, True)
vSkLines = Part.SketchManager.CreateCornerRectangle(-0.041, 0.074, 0, 0.041, 0.033, 0)
Part.ClearSelection2 True
Part.SketchManager.InsertSketch True
boolstatus = Part.Extension.SelectByID2("スケッチ3", "SKETCH", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = Part.SelectedFeatureProperties(0, 0, 0, 0, 0, 0, 0, 1, 0, "出口")
boolstatus = Part.Extension.SelectByID2("出口", "SKETCH", 0, 0, 0, False, 0, Nothing, 0)
Part.EditSketch
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Line3", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
Part.SelectMidpoint
boolstatus = Part.Extension.SelectByID2("Point1@原点", "EXTSKETCHPOINT", 0, 0, 0, True, 0, Nothing, 0)
Part.SketchAddConstraints "sgVERTICALPOINTS2D"
Part.ClearSelection2 True
Part.SketchManager.InsertSketch True

' Named View
'Part.ShowNamedView2 "*等角投影", 7
Part.ViewZoomtofit2
boolstatus = Part.Extension.SelectByID2("外側R", "SKETCH", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("入り口", "SKETCH", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("入り口", "SKETCH", 0, 0, 0, False, 0, Nothing, 0)
Part.EditSketch
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Line2", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
Part.SelectMidpoint
boolstatus = Part.Extension.SelectByID2("Point1@原点", "EXTSKETCHPOINT", 0, 0, 0, True, 0, Nothing, 0)
Part.SketchAddConstraints "sgHORIZONTALPOINTS2D"
Part.ClearSelection2 True
Part.SketchManager.InsertSketch True
boolstatus = Part.Extension.SelectByID2("外側R", "SKETCH", 0, 0, 0, False, 0, Nothing, 0)
Part.EditSketch
Part.ClearSelection2 True
Part.SketchManager.InsertSketch True
boolstatus = Part.Extension.SelectByID2("外側R", "SKETCH", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = Part.ReorderFeature("外側R", "出口")
boolstatus = Part.Extension.SelectByID2("外側R", "SKETCH", 0, 0, 0, False, 0, Nothing, 0)
Part.EditSketch
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Point1", "SKETCHPOINT", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line1@出口", "EXTSKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
Part.SketchAddConstraints "sgATPIERCE"
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Point2", "SKETCHPOINT", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line4@入り口", "EXTSKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
Part.SketchAddConstraints "sgATPIERCE"
Part.ClearSelection2 True
Part.SketchManager.InsertSketch True
boolstatus = Part.Extension.SelectByID2("正面", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
Part.SketchManager.InsertSketch True
Part.ClearSelection2 True
Set skSegment = Part.SketchManager.Create3PointArc(0.018, 0.035, 0#, 0.048, 0.004, 0#, 0.046, 0.031, 0#)
Part.ClearSelection2 True
Set skSegment = Part.SketchManager.CreateCenterLine(0.018, 0.035, 0#, 0.167765, 0.035, 0#)
Part.SetPickMode
Part.ClearSelection2 True
boolstatus = Part.Extension.SketchBoxSelect("0.029", "0.028", "0.000", "0.043", "0.044", "0.000")
boolstatus = Part.Extension.SelectByID2("Arc1", "SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line1", "SKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
Part.SketchAddConstraints "sgTANGENT"
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Point1", "SKETCHPOINT", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line3@出口", "EXTSKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
Part.SketchAddConstraints "sgATPIERCE"
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Point2", "SKETCHPOINT", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("Line2@入り口", "EXTSKETCHSEGMENT", 0, 0, 0, True, 0, Nothing, 0)
Part.SketchAddConstraints "sgATPIERCE"
Part.ClearSelection2 True
Part.SketchManager.InsertSketch True
boolstatus = Part.Extension.SelectByID2("スケッチ4", "SKETCH", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = Part.SelectedFeatureProperties(0, 0, 0, 0, 0, 0, 0, 1, 0, "内側R")
End Sub

フィジカルダイナミックス

玉3つ、板1つのアセンブリ

普通、アセンブリで部品を扱う時、ソリッド同士が交わる、交錯するのが変だが、この状態では物らしい動きになる。玉と玉が衝突したら玉が動く。玉を動かし易いように板にビー玉を「合致」(一致)をさせる。
モデルの状態でやってます。モーションスタディじゃない。
フィジカルダイナミックスのチェック中だけ衝突、物らしく動く。普段からこれできるとスゲーが、描画が遅くなるんだろー。
ファイルはこっち。作るの簡単、ビー玉を一つ、板を1つ作ってアセンブリで合致させるだけ。