Autodesk Community Tips- ADNオープン
Autodesk Community Tipsではちょっとしたコツ、やり方、ショートカット、アドバイスやヒントを共有しています。
ソート順:
Question InventorのAPIで2D図面上の任意の2点の座標を指定して寸法を追加する方法はありますか。 Answer 入力となる座標に2D図面上で図形が存在しない場合、Inventorの図面寸法を作成することができません。   このため、任意の2点の座標から長さ寸法を挿入したい場合、スケッチ上に入力座標でポイントを作成し、ポイント間の拘束寸法を作成、作成した寸法を図面に取り込むことで寸法を発生させる必要があります。   なお、この方法で作成した寸法はスケッチでの入力点に拘束されているため、図面上の図形や、ビューの元データのモデルの更新に追随して更新されません。   また、拘束寸法をシートに取り込んだ場合、寸法値はドキュメントの規格設定によりinchまたはmmとなります。寸法値をcm等の別の単位で表示したい場合は、シートに取得したスケッチの拘束寸法に対して値の上書きを行う必要があります。なお、寸法値の上書きを行っている場合スケッチ上で拘束寸法の変更を行った場合においても、値の更新が自動で行われない(上書き値が表示される)点に注意が必要です。   以下は2点の座標を元にスケッチに点を追加、拘束寸法を作成後にシートに取り込みを行うVBAのサンプルコードです。 Dim oDoc As DrawingDocument Set oDoc = ThisApplication.ActiveDocument Dim oSheet As sheet Set oSheet = oDoc.ActiveSheet Dim oSketch As sketch Dim oDimensionConstraint As DimensionConstraint Set oDimensionConstraint = addDimensionBySketchPoint(oSheet, "スケッチ1", 10, 10, 12, 10) Dim oConsraintDimensionCollection As ObjectCollection Set oConsraintDimensionCollection = ThisApplication.TransientObjects.CreateObjectCollection oConsraintDimensionCollection.Add oDimensionConstraint 'retrieve model dimension Call oSheet.DrawingDimensions.GeneralDimensions.Retrieve(oDimensionConstraint.Parent, oConsraintDimensionCollection) End Sub Public Function addDimensionBySketchPoint(oSheet As sheet, sketchName As String, x1 As Double, y1 As Double, x2 As Double, y2 As Double) As DimensionConstraint Dim oTg As TransientGeometry Set oTg = ThisApplication.TransientGeometry Dim oSketch As DrawingSketch On Error Resume Next Set oSketch = oSheet.Sketches(sketchName) On Error GoTo 0 If oSketch Is Nothing Then Set oSketch = oSheet.Sketches.Add() End If oSketch.Edit Dim p1 As Point2d Set p1 = oTg.CreatePoint2d(x1, y1) Dim p2 As Point2d Set p2 = oTg.CreatePoint2d(x2, y2) Dim skP1 As SketchPoint Set skP1 = oSketch.SketchPoints.Add(p1, False) Dim skP2 As SketchPoint Set skP2 = oSketch.SketchPoints.Add(p2, False) Dim tp As Point2d Set tp = oTg.CreatePoint2d((x2 + x1) / 2, (y2 + y1) / 2) Dim oTwoPointDistanceDimConstraint As TwoPointDistanceDimConstraint Set oTwoPointDistanceDimConstraint = oSketch.DimensionConstraints.AddTwoPointDistance(skP1, skP2, kHorizontalDim, tp) Set addDimensionBySketchPoint = oTwoPointDistanceDimConstraint oSketch.ExitEdit  
記事全体を表示