手抜きメニューに登録しながらマクロを修正していたら
地味なヤツを見つけました。
こんな感じの、丸括弧付きの寸法って何と呼ぶのが正式なんでしょうか?
(きっとJISとかで決まっていると思うのですが)
僕は参考寸法と呼んでいます。 こちらでもそんな記載になってます。
寸法の記入の基本ルール
「2重寸法の禁止」の所に記載されています。
(個人的に重複した寸法は、かなり重罪です)
こちらでは括弧寸法と記載されていました。
括弧寸法の使い方をここまで細かく語るエンジニアはいない | メカ設計のツボ|マザーマシンの元エンジニアが語る
これ、図面を描いているAdvanceCADには、寸法をクリックしただけで
行ってくれる機能があるのですが、CATIAには無いですよね?
これを行うだけのマクロです。
'vba Sample_Draw_Ref_Dimension ver0.0.2 using-'KCL0.0.12' Option Explicit Private Enum Dimension_Value Main_Value = 1 Dual_Value = 2 End Enum Sub CATMain() 'ドキュメントのチェック If Not CanExecute("DrawingDocument") Then Exit Sub Dim Msg$: Msg = "参考/非参考化する寸法を選択 // [Esc]=Cancel" Dim DrwDim As DrawingDimension Dim DimVal As Variant 'DrawingDimValue Dim Bfr$, Afr$, Upr$, Lwr$ Do Set DrwDim = KCL.SelectItem(Msg, "DrawingDimension") If DrwDim Is Nothing Then Exit Sub Set DimVal = DrwDim.GetValue Call DimVal.GetBaultText(Dimension_Value.Main_Value, _ Bfr, Afr, Upr, Lwr) If IsRefDimension(Bfr, Afr) Then '既に参考寸法 Call DimVal.SetBaultText(Dimension_Value.Main_Value, _ Mid(Bfr, 2), _ Left(Afr, Len(Afr) - 1), _ Upr, Lwr) Else 'ただの寸法 Call DimVal.SetBaultText(Dimension_Value.Main_Value, _ "(" & Bfr, _ Afr & ")", _ Upr, Lwr) End If Loop End Sub Private Function IsRefDimension(ByVal Bfr As String, _ ByVal Afr As String) As Boolean IsRefDimension = False If Bfr = vbNullString Or Afr = vbNullString Then Exit Function Dim Tp$, Ed$ Tp = Left(Bfr, 1) Ed = Right(Afr, 1) If Tp = "(" And Ed = ")" Then IsRefDimension = True End Function
寸法のプロパティの [寸法テキスト]タブ [関連テキスト] の
・前側の最初の文字が「(」
・後側の最後の文字が「)」
の二つの条件がそろった時に、丸括弧を外し
そうでないときは丸括弧を追加します。
こんな感じです。
・・・地味