まずはジャーナルを記録します。記録する処理は、
- ボルト頭部の円筒ソリッドを作成
- ボルトねじ部の円筒ソリッドを作成
- 2つのソリッドを足して1つのソリッドにする
という操作を記録します。これは簡単にできましたし、再生しても問題ありませんでした。
そして、作成されたジャーナルに前回のVBコードを追加するわけですが、これが全然うまく動かない。びっくりするくらいできない。ググってもググってもググってもサンプルコードが見つからない...O| ̄|_     
退職日も近くなり、もうだめだ...最初から無理だったんだよ...どんどん、ごめんね...などとあきらめかけていたその時!NXの中にサンプルコードがあったことを思い出ししました。NXインストフォルダを拡張子vbで全検索したところ、でてきましたよ、ずらずらっとvbファイルが。NX5では以下のフォルダに、それはそれはたくさんのサンプルコードがあります。     
NXインストフォルダ\UGOPEN\SampleNXOpenApplications\.NET
いろいろ見て、良さそうなのをコピペ→実行→エラー、コピペ→実行→エラー、コピペ→実行→エラー...いったいどれくらいの時間が過ぎたのだろう...というくらい、どのファイルをどう参考にしたのかわからなくなってしまいましたが、以下のコードで動きました。
* ボルトソリッドは頭とねじ部を足して1ソリッドとしてあります。    
* 穴ソリッドは座グリ穴、逃がし穴、ねじ下穴と全て単体のソリッドとして作成してあります。
Option Explicit On
Imports system.IO
Imports System.Windows.Forms
Imports System
Imports NXOpen
Module NXJournal      
    Sub Main()       
        Dim theSession As Session = Session.GetSession()       
        Dim workPart As Part = theSession.Parts.Work       
        Dim theUI As UI = UI.GetUI()       
        Dim form As Form1 = New Form1(theSession, theUI)       
        If form.ShowDialog() <> DialogResult.OK Then Exit Sub  
    End Sub       
End Module 
Public Class Form1      
    Inherits System.Windows.Forms.Form 
    ''''''''''      
    '    PRIVATE DATA       
    ''''''''''       
    Private m_session As Session       
    Private m_ui As UI       
    ''''''''''       
    '       PUBLIC METHODS       
    ''''''''''       
    Public Sub New(ByVal session As Session, ByVal ui As UI)       
        MyBase.New()       
        m_session = session       
        m_ui = ui       
        'This call is required by the Windows Form Designer.       
        InitializeComponent()       
    End Sub       
    ' --------------------------■ 設定       
    Private dsArray() As Single = {1.6, 2, 3, 4, 5, 6, 8, 10, 12, 16, 20, 24, 30, 36, 48, 56, 64}       ' 呼び       
    Private dkArray() As Single = {3, 3, 5.5, 7, 8.5, 10, 13, 16, 18, 24, 30, 36, 45, 54, 72, 84, 96}   ' 頭径       
    Private hkArray() As Single = {1.6, 2, 3, 4, 5, 6, 8, 10, 12, 16, 20, 24, 30, 36, 48, 56, 64}       ' 頭高       
    Private hdsArray() As Single = {1.8, 2.4, 3.4, 4.5, 5.5, 6.6, 9, 11, 13.5, 17.5, 22, 26, 33, 39, 52, 62, 70}        ' 逃がし穴径       
    Private hdkArray() As Single = {3.5, 4.4, 6.5, 8, 10, 11, 15, 18, 20, 26, 33, 40, 50, 58, 78, 0, 0}                 ' 座グリ穴径       
    Private hhkArray() As Single = {1.8, 2.2, 3.5, 4.8, 5.8, 6.8, 8.8, 10.8, 12.8, 16.8, 21, 25, 31, 37, 49, 0, 0}      ' 座グリ穴深さ       
    Private hdtArray() As Single = {1.25, 1.6, 2.5, 3.3, 4.2, 5, 6.75, 8.5, 10.25, 14, 17.5, 21, 26.5, 32, 43, 50.5, 58}' 下穴径 
    ' --------------------------■ フォームソース      
    'フォームがコンポーネントの一覧をクリーンアップするために dispose をオーバーライドします。       
    <System.Diagnostics.DebuggerNonUserCode()> _       
    Protected Overrides Sub Dispose(ByVal disposing As Boolean)       
        Try       
            If disposing AndAlso components IsNot Nothing Then       
                components.Dispose()       
            End If       
        Finally       
            MyBase.Dispose(disposing)       
        End Try       
    End Sub 
    'Windows フォーム デザイナで必要です。      
    Private components As System.ComponentModel.IContainer 
    'メモ: 以下のプロシージャは Windows フォーム デザイナで必要です。      
    'Windows フォーム デザイナを使用して変更できます。  
    'コード エディタを使って変更しないでください。       
    <System.Diagnostics.DebuggerStepThrough()> _       
    Private Sub InitializeComponent()       
        Me.ComboBox1 = New System.Windows.Forms.ComboBox       
        Me.Label1 = New System.Windows.Forms.Label       
        Me.TextBox1 = New System.Windows.Forms.TextBox       
        Me.Label2 = New System.Windows.Forms.Label       
        Me.Button1 = New System.Windows.Forms.Button       
        Me.Button2 = New System.Windows.Forms.Button       
        Me.Label3 = New System.Windows.Forms.Label       
        Me.PictureBox1 = New System.Windows.Forms.PictureBox       
        Me.CheckBox1 = New System.Windows.Forms.CheckBox       
        CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit()       
        Me.SuspendLayout()       
        '       
        'ComboBox1       
        '       
        Me.ComboBox1.FormattingEnabled = True       
        Me.ComboBox1.Location = New System.Drawing.Point(81, 25)       
        Me.ComboBox1.Margin = New System.Windows.Forms.Padding(4)       
        Me.ComboBox1.Name = "ComboBox1"       
        Me.ComboBox1.Size = New System.Drawing.Size(71, 23)       
        Me.ComboBox1.TabIndex = 0       
        '       
        'Label1       
        '       
        Me.Label1.AutoSize = True       
        Me.Label1.Location = New System.Drawing.Point(12, 28)       
        Me.Label1.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0)       
        Me.Label1.Name = "Label1"       
        Me.Label1.Size = New System.Drawing.Size(39, 15)       
        Me.Label1.TabIndex = 1       
        Me.Label1.Text = "呼び"       
        '       
        'TextBox1       
        '       
        Me.TextBox1.Location = New System.Drawing.Point(82, 55)       
        Me.TextBox1.Name = "TextBox1"       
        Me.TextBox1.Size = New System.Drawing.Size(71, 22)       
        Me.TextBox1.TabIndex = 3       
        '       
        'Label2       
        '       
        Me.Label2.AutoSize = True       
        Me.Label2.Location = New System.Drawing.Point(12, 58)       
        Me.Label2.Name = "Label2"       
        Me.Label2.Size = New System.Drawing.Size(63, 15)       
        Me.Label2.TabIndex = 4       
        Me.Label2.Text = "長さ(L)"       
        '       
        'Button1       
        '       
        Me.Button1.Location = New System.Drawing.Point(12, 193)       
        Me.Button1.Name = "Button1"       
        Me.Button1.Size = New System.Drawing.Size(70, 23)       
        Me.Button1.TabIndex = 5       
        Me.Button1.Text = "OK"       
        Me.Button1.UseVisualStyleBackColor = True       
        '       
        'Button2       
        '       
        Me.Button2.Location = New System.Drawing.Point(88, 193)       
        Me.Button2.Name = "Button2"       
        Me.Button2.Size = New System.Drawing.Size(70, 23)       
        Me.Button2.TabIndex = 6       
        Me.Button2.Text = "Cancel"       
        Me.Button2.UseVisualStyleBackColor = True       
        '       
        'Label3       
        '       
        Me.Label3.AutoSize = True       
        Me.Label3.Location = New System.Drawing.Point(188, 197)       
        Me.Label3.Name = "Label3"       
        Me.Label3.Size = New System.Drawing.Size(295, 15)       
        Me.Label3.TabIndex = 7       
        Me.Label3.Text = "独断によりL1=L/2、L2=Lとしています。"       
        '       
        'PictureBox1       
        '       
        '★Resourceを使った以下の書式ではジャーナルでエラーとなります。       
        'そのため、FromFileを使用しています。       
'        Me.PictureBox1.Image = Global.NXGateCrtBolt.My.Resources.Resources.hcb21        
        Me.PictureBox1.Image = System.Drawing.Image.FromFile("C:\NXGate\journal\Crtbolt\hcb.png")         
        Me.PictureBox1.Location = New System.Drawing.Point(159, 12)       
        Me.PictureBox1.Name = "PictureBox1"       
        Me.PictureBox1.Size = New System.Drawing.Size(327, 176)       
        Me.PictureBox1.TabIndex = 2       
        Me.PictureBox1.TabStop = False       
        '       
        'CheckBox1       
        '       
        Me.CheckBox1.AutoSize = True       
        Me.CheckBox1.Location = New System.Drawing.Point(15, 83)       
        Me.CheckBox1.Name = "CheckBox1"       
        Me.CheckBox1.Size = New System.Drawing.Size(90, 19)       
        Me.CheckBox1.TabIndex = 9       
        Me.CheckBox1.Text = "穴も作る"       
        Me.CheckBox1.UseVisualStyleBackColor = True       
        '       
        'Form1       
        '       
        Me.AutoScaleDimensions = New System.Drawing.SizeF(8.0!, 15.0!)       
        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font       
        Me.ClientSize = New System.Drawing.Size(504, 230)       
        Me.Controls.Add(Me.CheckBox1)       
        Me.Controls.Add(Me.Label3)       
        Me.Controls.Add(Me.Button2)       
        Me.Controls.Add(Me.Button1)       
        Me.Controls.Add(Me.Label2)       
        Me.Controls.Add(Me.TextBox1)       
        Me.Controls.Add(Me.PictureBox1)       
        Me.Controls.Add(Me.Label1)       
        Me.Controls.Add(Me.ComboBox1)       
        Me.Font = New System.Drawing.Font("MS ゴシック", 11.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(128, Byte))       
        Me.Margin = New System.Windows.Forms.Padding(4)       
        Me.Name = "Form1"       
        Me.Text = "ボルトの作成"       
        CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit()       
        Me.ResumeLayout(False)       
        Me.PerformLayout()       
        ' ----------------------------------------------       
        '                                   ■ FormLoad       
        ' ----------------------------------------------       
        Dim sngTmp As Single       
        ' -----リストに追加       
        For Each sngTmp In dsArray                      '       
            ComboBox1.Items.Add("M" & CStr(sngTmp))       
        Next       
        ' -----初期値       
        ComboBox1.SelectedIndex = 0       
        TextBox1.Text = 10       
    End Sub 
    Friend WithEvents ComboBox1 As System.Windows.Forms.ComboBox      
    Friend WithEvents Label1 As System.Windows.Forms.Label       
    Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox       
    Friend WithEvents TextBox1 As System.Windows.Forms.TextBox       
    Friend WithEvents Label2 As System.Windows.Forms.Label       
    Friend WithEvents Button1 As System.Windows.Forms.Button       
    Friend WithEvents Button2 As System.Windows.Forms.Button       
    Friend WithEvents Label3 As System.Windows.Forms.Label       
    Friend WithEvents CheckBox1 As System.Windows.Forms.CheckBox       
    ' ----------------------------------------------       
    '                                   ■ Cancel       
    ' ----------------------------------------------       
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click       
        Me.Close()       
    End Sub       
    ' ----------------------------------------------       
    '                                   ■ OK       
    ' ----------------------------------------------       
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click       
        Dim i As Short       
        Dim ichk As Short       
    dim l As Short       
        i = Me.ComboBox1.SelectedIndex       
        ichk = Me.CheckBox1.Checked     ' checked=-1       
        l=CSng(Me.TextBox1.Text)    ' Bolt長さ       
        Me.Close()       
        ' ----------------------------------------------       
        '                 ■ ここからJournal       
        ' ----------------------------------------------       
        Dim theSession As Session = Session.GetSession()       
        Dim workPart As Part = theSession.Parts.Work       
        Dim displayPart As Part = theSession.Parts.Display       
        ' ----------------------------------------------       
        ' メニュー: 挿入->Design Feature->Cylinder...       
        ' ----------------------------------------------       
        Dim markId1 As Session.UndoMarkId       
        markId1 = theSession.SetUndoMark(Session.MarkVisibility.Visible, "Start")       
        ' ----------------------------------------------       
        Dim nullFeatures_Feature As Features.Feature = Nothing       
        Dim cylinderBuilder1 As Features.CylinderBuilder       
        cylinderBuilder1 = workPart.Features.CreateCylinderBuilder(nullFeatures_Feature)       
        Dim origin1 As Point3d = New Point3d(0.0, 0.0, 0.0)       
        Dim vector1 As Vector3d = New Vector3d(0.0, 0.0, 1.0)       
        Dim direction1 As Direction       
        direction1 = workPart.Directions.CreateDirection(origin1, vector1, SmartObject.UpdateOption.WithinModeling) 
        Dim coordinates1 As Point3d = New Point3d(0.0, 0.0, 0.0)      
        Dim point1 As Point       
        point1 = workPart.Points.CreatePoint(coordinates1)       
        Dim axis1 As Axis       
        axis1 = workPart.Axes.CreateAxis(point1, direction1, SmartObject.UpdateOption.WithinModeling)       
        cylinderBuilder1.Axis = axis1       
        cylinderBuilder1.BooleanOption.Type = GeometricUtilities.BooleanOperation.BooleanType.Create       
        ' --------------------------------------円筒開始       
        Dim targetBodies1(0) As Body       
        Dim nullBody As Body = Nothing       
        targetBodies1(0) = nullBody       
        cylinderBuilder1.BooleanOption.SetTargetBodies(targetBodies1)       
        cylinderBuilder1.Type = Features.CylinderBuilder.Types.AxisDiameterAndHeight       
        theSession.SetUndoMarkName(markId1, "Cylinder")       
        cylinderBuilder1.Diameter.RightHandSide = dkArray(i)        ' 選択値        
        cylinderBuilder1.Height.RightHandSide = hkArray(i)        ' 選択値         
        Dim markId2 As Session.UndoMarkId       
        markId2 = theSession.SetUndoMark(Session.MarkVisibility.Invisible, "Cylinder")       
        Dim nXObject1 As NXObject       
        nXObject1 = cylinderBuilder1.Commit()       
        ' --------------------------------------足し算用にID取得        
        Dim strJID As String         
        strJID = nXObject1.JournalIdentifier         
        theSession.DeleteUndoMark(markId2, Nothing)       
        cylinderBuilder1.Destroy()       
        ' ----------------------------------------------       
        ' 2つ目の円筒作成       
        ' ----------------------------------------------       
        ' ----------------------------------------------       
        ' メニュー: 挿入->Design Feature->Cylinder...       
        ' ----------------------------------------------       
        Dim markId3 As Session.UndoMarkId       
        markId3 = theSession.SetUndoMark(Session.MarkVisibility.Visible, "Start")       
        ' ----------------------------------------------       
        Dim cylinderBuilder2 As Features.CylinderBuilder       
        cylinderBuilder2 = workPart.Features.CreateCylinderBuilder(nullFeatures_Feature)       
        Dim origin2 As Point3d = New Point3d(0.0, 0.0, 0.0)       
        Dim vector2 As Vector3d = New Vector3d(0.0, 0.0, 1.0)       
        Dim direction2 As Direction       
        direction2 = workPart.Directions.CreateDirection(origin2, vector2, SmartObject.UpdateOption.WithinModeling) 
        Dim coordinates2 As Point3d = New Point3d(0.0, 0.0, 0.0)      
        Dim point2 As Point       
        point2 = workPart.Points.CreatePoint(coordinates2)       
        Dim axis2 As Axis       
        axis2 = workPart.Axes.CreateAxis(point2, direction2, SmartObject.UpdateOption.WithinModeling)       
        cylinderBuilder2.Axis = axis2       
        cylinderBuilder2.BooleanOption.Type = GeometricUtilities.BooleanOperation.BooleanType.Create 
        Dim targetBodies2(0) As Body      
        targetBodies2(0) = nullBody       
        cylinderBuilder2.BooleanOption.SetTargetBodies(targetBodies2)       
        cylinderBuilder2.Type = Features.CylinderBuilder.Types.AxisDiameterAndHeight       
        theSession.SetUndoMarkName(markId3, "Cylinder")       
        cylinderBuilder2.Diameter.RightHandSide = dsArray(i)                ' 選択値        
        cylinderBuilder2.BooleanOption.Type = GeometricUtilities.BooleanOperation.BooleanType.Subtract         
        Dim body1 As Body = CType(workPart.Bodies.FindObject(strJID), Body)         
        cylinderBuilder2.BooleanOption.Type = GeometricUtilities.BooleanOperation.BooleanType.Unite       
        Dim targetBodies3(0) As Body       
        targetBodies3(0) = body1       
        cylinderBuilder2.BooleanOption.SetTargetBodies(targetBodies3)  
        cylinderBuilder2.Height.RightHandSide = hkArray(i)+l                ' 選択値        
        ' ----------------------------------------------       
        Dim markId4 As Session.UndoMarkId       
        markId4 = theSession.SetUndoMark(Session.MarkVisibility.Invisible, "Cylinder")       
        ' ----------------------------------------------       
        Dim nXObject2 As NXObject       
        nXObject2 = cylinderBuilder2.Commit()       
        ' ----------------------------------------------       
        theSession.DeleteUndoMark(markId4, Nothing)       
        cylinderBuilder2.Destroy()       
        ' ----------------------------------------------       
        ' 穴ソリッドも作る場合       
        ' ----------------------------------------------       
    If hdkArray(i)=0 then       
            MessageBox.show("穴寸法が定義されていません")       
        ElseIf ichk = -1 Then       
            Dim markId5 As Session.UndoMarkId       
            markId5 = theSession.SetUndoMark(Session.MarkVisibility.Visible, "Start")       
            ' ----------------------------------------------       
            ' 座グリ穴       
            ' ----------------------------------------------       
            Dim cylinderBuilder3 As Features.CylinderBuilder       
            cylinderBuilder3 = workPart.Features.CreateCylinderBuilder(nullFeatures_Feature)       
            Dim origin3 As Point3d = New Point3d(0.0, 0.0, 0.0)       
            Dim vector3 As Vector3d = New Vector3d(0.0, 0.0, 1.0)       
            Dim direction3 As Direction       
            direction3 = workPart.Directions.CreateDirection(origin3, vector3, SmartObject.UpdateOption.WithinModeling) 
            Dim coordinates3 As Point3d = New Point3d(0.0, 0.0, 0.0)      
            Dim point3 As Point       
            point3 = workPart.Points.CreatePoint(coordinates3)       
            Dim axis3 As Axis       
            axis3 = workPart.Axes.CreateAxis(point3, direction3, SmartObject.UpdateOption.WithinModeling)       
            cylinderBuilder3.Axis = axis3       
            cylinderBuilder3.BooleanOption.Type = GeometricUtilities.BooleanOperation.BooleanType.Create       
            ' --------------------------------------円筒開始       
            Dim targetBodies4(0) As Body       
            targetBodies4(0) = nullBody       
            cylinderBuilder3.BooleanOption.SetTargetBodies(targetBodies4)       
            cylinderBuilder3.Type = Features.CylinderBuilder.Types.AxisDiameterAndHeight       
            theSession.SetUndoMarkName(markId5, "Cylinder")       
            cylinderBuilder3.Diameter.RightHandSide = hdkArray(i)        ' 座グリ穴径        
            cylinderBuilder3.Height.RightHandSide = hhkArray(i)           ' 座グリ穴深さ         
            Dim markId6 As Session.UndoMarkId       
            markId6 = theSession.SetUndoMark(Session.MarkVisibility.Invisible, "Cylinder")       
            Dim nXObject3 As NXObject       
            nXObject3 = cylinderBuilder3.Commit()       
            ' --------------------------------------色を変更       
            Dim displayModification1 As DisplayModification       
            displayModification1 = theSession.DisplayManager.NewDisplayModification()       
            displayModification1.ApplyToAllFaces = True       
            displayModification1.NewColor = 55                ' 穴の色        
            Dim objects1(0) As DisplayableObject       
            Dim body2 As Body = CType(workPart.Bodies.FindObject(nXObject3.JournalIdentifier), Body)       
            objects1(0) = body2       
            displayModification1.Apply(objects1)       
            displayModification1.Dispose()       
            ' ----------------------------------------------       
            theSession.DeleteUndoMark(markId6, Nothing)       
            cylinderBuilder3.Destroy()       
            ' ----------------------------------------------       
            ' 逃がし穴       
            ' ----------------------------------------------       
            Dim markId7 As Session.UndoMarkId       
            markId7 = theSession.SetUndoMark(Session.MarkVisibility.Visible, "Start")       
            ' ----------------------------------------------       
            Dim cylinderBuilder4 As Features.CylinderBuilder       
            cylinderBuilder4 = workPart.Features.CreateCylinderBuilder(nullFeatures_Feature)       
            Dim origin4 As Point3d = New Point3d(0.0, 0.0, 0.0)       
            Dim vector4 As Vector3d = New Vector3d(0.0, 0.0, 1.0)       
            Dim direction4 As Direction       
            direction4 = workPart.Directions.CreateDirection(origin4, vector4, SmartObject.UpdateOption.WithinModeling) 
            Dim coordinates4 As Point3d = New Point3d(0.0, 0.0, 0.0)      
            Dim point4 As Point       
            point4 = workPart.Points.CreatePoint(coordinates4)       
            Dim axis4 As Axis       
            axis4 = workPart.Axes.CreateAxis(point4, direction4, SmartObject.UpdateOption.WithinModeling)       
            cylinderBuilder4.Axis = axis4       
            cylinderBuilder4.BooleanOption.Type = GeometricUtilities.BooleanOperation.BooleanType.Create       
            ' --------------------------------------円筒開始       
            Dim targetBodies5(0) As Body       
            targetBodies5(0) = nullBody       
            cylinderBuilder4.BooleanOption.SetTargetBodies(targetBodies5)       
            cylinderBuilder4.Type = Features.CylinderBuilder.Types.AxisDiameterAndHeight       
            theSession.SetUndoMarkName(markId7, "Cylinder")       
            cylinderBuilder4.Diameter.RightHandSide = hdsArray(i)        ' 逃がし穴径        
            cylinderBuilder4.Height.RightHandSide = hkArray(i)+l/2          ' 逃がし穴深さ         
            Dim markId8 As Session.UndoMarkId       
            markId8 = theSession.SetUndoMark(Session.MarkVisibility.Invisible, "Cylinder")       
            Dim nXObject4 As NXObject       
            nXObject4 = cylinderBuilder4.Commit()       
            ' --------------------------------------色を変更       
'            Dim displayModification1 As DisplayModification       
            displayModification1 = theSession.DisplayManager.NewDisplayModification()       
            displayModification1.ApplyToAllFaces = True       
            displayModification1.NewColor = 55                ' 穴の色        
            Dim objects2(0) As DisplayableObject       
            Dim body3 As Body = CType(workPart.Bodies.FindObject(nXObject4.JournalIdentifier), Body)       
            objects2(0) = body3       
            displayModification1.Apply(objects2)       
            displayModification1.Dispose()       
            ' ----------------------------------------------       
            theSession.DeleteUndoMark(markId8, Nothing)       
            cylinderBuilder4.Destroy()       
            ' ----------------------------------------------       
            ' 下穴       
            ' ----------------------------------------------       
            Dim markId9 As Session.UndoMarkId       
            markId9 = theSession.SetUndoMark(Session.MarkVisibility.Visible, "Start")       
            ' ----------------------------------------------       
            Dim cylinderBuilder5 As Features.CylinderBuilder       
            cylinderBuilder5 = workPart.Features.CreateCylinderBuilder(nullFeatures_Feature)       
            Dim origin5 As Point3d = New Point3d(0.0, 0.0, 0.0)       
            Dim vector5 As Vector3d = New Vector3d(0.0, 0.0, 1.0)       
            Dim direction5 As Direction       
            direction5 = workPart.Directions.CreateDirection(origin5, vector5, SmartObject.UpdateOption.WithinModeling) 
            Dim coordinates5 As Point3d = New Point3d(0.0, 0.0, 0.0)      
            Dim point5 As Point       
            point5 = workPart.Points.CreatePoint(coordinates5)       
            Dim axis5 As Axis       
            axis5 = workPart.Axes.CreateAxis(point5, direction5, SmartObject.UpdateOption.WithinModeling)       
            cylinderBuilder5.Axis = axis5       
            cylinderBuilder5.BooleanOption.Type = GeometricUtilities.BooleanOperation.BooleanType.Create       
            ' --------------------------------------円筒開始       
            Dim targetBodies6(0) As Body       
            targetBodies6(0) = nullBody       
            cylinderBuilder5.BooleanOption.SetTargetBodies(targetBodies6)       
            cylinderBuilder5.Type = Features.CylinderBuilder.Types.AxisDiameterAndHeight       
            theSession.SetUndoMarkName(markId9, "Cylinder")       
            cylinderBuilder5.Diameter.RightHandSide = hdtArray(i)        ' 下穴径        
            cylinderBuilder5.Height.RightHandSide = hkArray(i)+l+l/2     ' 下穴深さ         
            Dim markId10 As Session.UndoMarkId       
            markId10 = theSession.SetUndoMark(Session.MarkVisibility.Invisible, "Cylinder")       
            Dim nXObject5 As NXObject       
            nXObject5 = cylinderBuilder5.Commit()       
            ' --------------------------------------色を変更       
            displayModification1 = theSession.DisplayManager.NewDisplayModification()       
            displayModification1.ApplyToAllFaces = True       
            displayModification1.NewColor = 55                ' 穴の色        
            Dim objects3(0) As DisplayableObject       
            Dim body4 As Body = CType(workPart.Bodies.FindObject(nXObject5.JournalIdentifier), Body)       
            objects3(0) = body4       
            displayModification1.Apply(objects3)       
            displayModification1.Dispose()       
            ' ----------------------------------------------       
            theSession.DeleteUndoMark(markId10, Nothing)       
            cylinderBuilder5.Destroy()       
        End If       
    End Sub       
End Class
太字のところが編集した箇所です。    
特にフォーム定義のPictureBoxの箇所は、画像をソースに埋め込む方法がわからなかったので、絶対パスで画像ファイルを読み込ませています。
これはエラー↓    
        Me.PictureBox1.Image = Global.NXGateCrtBolt.My.Resources.Resources.hcb21  
これはOK↓     
        Me.PictureBox1.Image = System.Drawing.Image.FromFile("C:\NXGate\journal\Crtbolt\hcb.png") 
ということで何とか退職までに間に合いました。
参考までに、作成されるボルトと穴の寸法表を次ページに載せておきます。
それでは、またいつか、どこかでお会いできる日を楽しみにしています。
 
 
 micasukeです。
NXの備忘録を取りとめもなく綴ってあります。
micasukeです。
NXの備忘録を取りとめもなく綴ってあります。
0 件のコメント:
コメントを投稿