mic20
新人さん
オフライン
投稿: 5
I'm a llama!
|
|
APIで直径寸法設定できない
« 投稿日: 2008/12/24 - 15:02:45 » |
|
はじめまして、 APIの初心者です。
SolidWorks 2007 SP5でプログラムを書いていますが、なかなかできないことがありますので、皆様からの教示をお願い致します。
やりたいこと: *部品を回転フィーチャで作成し、保存する *のそ部品から2D図面を作成する
問題点: *部品作成する時、回転軸を描き、スケッチを描き、寸法と拘束を入れましたが、中心線までの寸法はどうすれば直径寸法に変わるのでしょうか、色々試しましたがうまくできません。 手入力の場合は、中心線の向こう側にマウスを置くで自動的に変わることは知っていますが、APIではどうすればよいのでしょうか?
なぜ直径寸法がほしいかといいますと、図面を作成するときに、モデルアイテムの挿入だけで全ての寸法、公差が入力されるため(せっかく部品作成するときに公差を入れたので2度手間はちょっと。。。)
部品作成ソースは抜粋して、以下のように書いています: 。。。。変数宣言等 Dim BushOuterRadius = 10 Private Function AutoCreate_CorePin() CorePin_BaseDepth = 10 CorePin_PinDepth = 10 swApp.SetUserPreferenceToggle swInputDimValOnCreate, False 'Turn off dimension input dialog Set swModel = swApp.NewPart swModel.SetUserPreferenceIntegerValue swUnitsLinear, SwConst.swMM Set swSelMgr = swModel.SelectionManager Set swFeatMgr = swModel.FeatureManager swModel.SetAddToDB False 'Turn on snapping 'Sketching swModel.InsertSketch2 False swModel.CreateLine2(0, 0, 0, 0, 0.03, 0).ConstructionGeometry = True '中心線 swModel.CreateLine2 0, 0, 0, BushOuterRadius / 1000, 0, 0 'CorePin base line swModel.CreateLine2 BushOuterRadius / 1000, 0, 0, BushOuterRadius / 1000, CorePin_BaseDepth / 1000, 0 'CorePin base depth '寸法と公差を追加 boolstatus = swModel.Extension.SelectByID2("Line1", "SKETCHSEGMENT", 0, 0.016, 0, True, 0, Nothing, 0) '寸法を中心線の左側において、直径寸法になってほしいですが。。。一般寸法しかなりませんでした swModel.AddDimension2 -0.005, 0.005, 0 swModel.EditDimensionProperties2 swTolBILAT, 0, -0.01 / 1000, "", "", 1, 9, 2, 1, 11, 11, "<MOD-DIAM>", "", 1, "", "", 0 ' boolstatus = swModel.Extension.SelectByID2("D1@スケッチ1", "DIMENSIONS", 0, 0.005, 0, True, 0, Nothing, 0) 'SolidWorks APIヘルプで、swDispDim.Diametricがあって直径寸法に変更できるとかいていますが。。。 Set swDispDim = swSelMgr.GetSelectedObject5(1) 'この寸法のタイプは、Linearタイプになっているため、swDispDim.Diametricが利かない Debug.Print swDispDim.GetType swDispDim.Diametric = True If swDispDim.Diametric Then Debug.Print "swDispDim.Diametric = True" Else Debug.Print "swDispDim.Diametric = False" End If End Function
以上、よろしくお願い致します。
|