参照スケッチとエンティティ変換の違い

 

大きな違いは「投影対象」。対象がスケッチとエンティティ/要素の違いです。参照スケッチはスケッチ単位で強固な関連付けです。エンティティ変換は線、点(エンティティ/要素)単位の拘束です。拘束は削除できます。

参照スケッチは、エンティティ変換/要素変換でも可能というか、基本、エンティティ変換を使うのが普通でしょう。平行の場合だけ。形状からスケッチが欲しい時に使うのがほとんどです。次の動画みたいなことしませんよね。

で、参照スケッチがいいのは、

あらぬ方向、位置へのスケッチをしたい場合はスケッチ全体をコピーし関連付ける。

だから、寸法の共有とか標準化という考えで作るものです。標準化?した参照スケッチから複数のフィーチャーを作るとか。

参照ジオメトリの重心

フィーチャーがある時は、参照ジオメトリに「重心」と「合致参照」が増えます。背の高い製品を設計する時は重心を表示します。

フィーチャーが無いと「使えない」色になっているなら「重心」の存在を意識できるが、「平面」から「点」」までしか存在しません。Solidworksさん「重心」使えない色にして常に表示してください。

重心の位置をスケッチで使う場合、「重心参照点」をフィーチャーツリーに追加します。「重心参照点」はフィーチャーですからこれを使ってスケッチする場合は参照ジオメトリの平面を作ります。スケッチで「重心参照点」と直線の端を一致させることができます。つまり、拘束も使える。

赤い矢印が「重心参照点」フィーチャーです。

話は変わって、重心位置に点を表示するマクロです。参照ジオメトリの原点があれば十分でしょう。CharGPTならすぐできるだろうとやってみたが、部品表はすぐできたが、調子に乗っていろいろ要求したので結構時間がかかった。部品表のマクロの時は、Solidworksマクロってマイナーすぎてどうせできないだろって思って、コマメにコードを書いてもらってからまとめるという方法だったかあな。質問は10回程度だった。いい時代です。プログラムってちょっとしたことを確認するだけで時間がかかるし、コードを書く時間も。書く手間が省けるだけですごいが、コピペで使える。

平面に平行な参照ジオメトリの平面を作って、そこに点をスケッチする。評価の質量特性で重心が一時的に表示されるので正しくスケッチされているか確認して下さい。

Option Explicit

Dim swApp As Object
Dim Part As Object
Dim MassProp As MassProperty
Dim MassCenter(2) As Double
Dim RefPlaneFeature As Object
Dim SketchMgr As Object
Dim SketchPoint As Object

Sub main()

    ' SolidWorksアプリケーションへの接続
    Set swApp = Application.SldWorks
    Set Part = swApp.ActiveDoc
    If Part Is Nothing Then
        MsgBox "モデルが開いていません"
        Exit Sub
    End If
    
    ' 質量プロパティオブジェクトを取得
    Set MassProp = Part.Extension.CreateMassProperty
    If MassProp Is Nothing Then
        MsgBox "質量プロパティを取得できませんでした。"
        Exit Sub
    End If
    
    ' 重心の位置を取得
    MassCenter(0) = MassProp.CenterOfMass(0) ' X座標
    MassCenter(1) = MassProp.CenterOfMass(1) ' Y座標
    MassCenter(2) = MassProp.CenterOfMass(2) ' Z座標
    
    '正面を選択
    Dim boolstatus As Boolean
    boolstatus = Part.Extension.SelectByID2("正面", "PLANE", 0, 0, 0, True, 0, Nothing, 0)

    ' 平面を挿入
    Set RefPlaneFeature = Part.FeatureManager.InsertRefPlane(swRefPlaneReferenceConstraint_Distance, MassCenter(2), 0, 0, 0, 0)

    If RefPlaneFeature Is Nothing Then
        MsgBox "参照平面の作成に失敗しました。"
        Exit Sub
    End If
    
    ' スケッチマネージャーを取得
    Set SketchMgr = Part.SketchManager
    
    ' 作成した参照平面を選択
    RefPlaneFeature.Select False
    
    ' 新しいスケッチを開始
    SketchMgr.InsertSketch True
    
    ' 重心の位置に点を作成
    Set SketchPoint = SketchMgr.CreatePoint(MassCenter(0), MassCenter(1), MassCenter(2))
    
    ' スケッチを閉じる
    SketchMgr.InsertSketch True
    
    MsgBox "重心の位置を通過する参照ジオメトリ平面上に点がスケッチされました。"

End Sub

拘束 マルチボディとアセンブリで

スケッチやフィーチャーの作成で他のスケッチやフィーチャー、外部のスケッチやフィーチャーを参照して拘束をすることがある。

マルチボディでの拘束例

アセンブリでの外部参照

完全定義 (ー)スケッチ1でいいじゃん

(-)スケッチ1の(-)は未完全定義という意味です。以下の3つでスケッチは完全定義になる。

  1. 幾何拘束
  2. 寸法拘束
  3. 位置拘束

三次元CAD では、1の幾何拘束はするが2,3まであると不自由になるので必要になってからでいい。

完全定義が必要と言われるのは、未定義=製作できないからですよね。本によると「完全定義」命みたいに書いてるが、設計段階だといろいろいじるから拘束が多いといけません。せいぜい幾何拘束(形)だけですよね。

マージ?幾何拘束とは違います

四角を描くと4本の線の端がマージすることで四角形の形になっている。線の端と線の端は幾何拘束ではなく、マージで拘束?している。マージって結合という意味なんで拘束じゃないわな。

マージは、エンティティトリムのパワートリムで外せます。

幾何拘束の削除は使っているとわかりますが、マージの解除(削除)方法はわからなかったんで動画にしました。