Inventor / 外観に様々な色を登録する
以前に書いた記事の追記 (2021/04/30)になります。
半透明にする
Inventor で、込み入った部位の作業をするとき、コンポーネントが半透明になっていると構造がわかりやすい。アセンブリの場合は、「透明」という機能もあるが、興味が湧いたので、半透明の外観も作成するルールも作ってみた。基本色作成のルールに外観属性を追加するだけだけど。
Sub Main
' Ver 2.0 By Octave.Lab Yoji Tanaka At 21/01/16
' Ver 2.1 By Octave.Lab Yoji Tanaka At 21/04/29
' 反射と透過の設定をした外観を追加
' Logger.Trace("基本色の追加スタート")
doc = ThisDoc.Document
' ドキュメントの外観コレクションの確保
Dim docAssets As Assets
docAssets = doc.Assets
' 外観オブジェクト(Asset)の新規作成
Dim appearance As Asset
Dim tobjs As TransientObjects
Dim color As ColorAssetValue
Dim floatValue As FloatAssetValue
Dim indx As Integer
Dim RR As Integer
Dim GG As Integer
Dim BB As Integer
Dim ACADColor
Dim ColorName As String = ""
For indx = 1 To 7
GetRGB(RR, GG, BB, indx, ColorName)
Try
appearance = docAssets.Add(AssetTypeEnum.kAssetTypeAppearance, "Generic", ColorName, ColorName)
Catch ex As Exception
MessageBox.Show("登録済み", "AddBasicColor")
Exit Sub
End Try
tobjs = ThisApplication.TransientObjects
color = appearance.Item("generic_diffuse")
color.Value = tobjs.CreateColor(RR, GG, BB)
'Ver 2.1
ColorName = ColorName + "_CL"
Try
appearance = docAssets.Add(AssetTypeEnum.kAssetTypeAppearance, "Generic", ColorName, ColorName)
Catch ex As Exception
MessageBox.Show("登録済み", "AddBasicColor")
Exit Sub
End Try
' tobjs = ThisApplication.TransientObjects
color = appearance.Item("generic_diffuse")
color.Value = tobjs.CreateColor(RR, GG, BB)
floatValue = appearance.Item("generic_reflectivity_at_0deg")
floatValue.Value = 0.1
floatValue = appearance.Item("generic_reflectivity_at_90deg")
floatValue.Value = 0.1
floatValue = appearance.Item("generic_transparency")
floatValue.Value = 0.8
Next
End Sub
Private Sub GetRGB(ByRef RR As Integer, ByRef GG As Integer, ByRef BB As Integer, ByRef ACADColor As Integer, ByRef ColorName As String)
Dim r As Double
Dim G As Double
Dim B As Double
ColorName = "ACAD_" + LTrim(Str(ACADColor))
Select Case ACADColor
Case 1 : r = 1 : G = 0 : B = 0 : ColorName = "01_RED"
Case 2 : r = 1 : G = 1 : B = 0 : ColorName = "02_YELLOW"
Case 3 : r = 0 : G = 1 : B = 0 : ColorName = "03_GREEN"
Case 4 : r = 0 : G = 1 : B = 1 : ColorName = "04_CYAN"
Case 5 : r = 0 : G = 0 : B = 1 : ColorName = "05_BLUE"
Case 6 : r = 1 : G = 0 : B = 1 : ColorName = "06_MAGENTA"
Case 7 : r = 1 : G = 1 : B = 1 : ColorName = "07_WHITE"
End Select
RR = r * 255
GG = G * 255
BB = B * 255
End Sub
外観の設定のうち、透明度と反射に関わる属性を設定するルールを追加することで設定できる。floatValue.Value の値を変えてやればふるまいを調整できる。
floatValue = appearance.Item("generic_reflectivity_at_0deg")
floatValue.Value = 0.1
floatValue = appearance.Item("generic_reflectivity_at_90deg")
floatValue.Value = 0.1
floatValue = appearance.Item("generic_transparency")
floatValue.Value = 0.8
日本の伝統色とEnglish Color Name
基本色作成と同じで、RGB3色のByte情報がわかればどんな色でも外観を作ることができる。色の名前とRGB情報は、https://irononamae.web.fc2.com/ja/ を参考にした。
English Color Nameはこんな感じ
役に立った!という記事にはぜひサポートお願いします。サポート頂けると大変に励みになります。