[CATIA V5 掲示板にもどる]
CATIA V5 掲示板 返信フォーム

- 以下は、記事NO. 7038 に関する 返信フォーム です -

SelectElement4 kantoku - 2015/02/03(Tue) 17:55 No.7038
mmy様の意図に反するとは思いますが、連続投稿規制で書き込めないため
こちらに記載します。


マクロのサンプルです。

Selectionを利用し2ファイル間での処理を行う場合は、
SelectElement4を利用する事で可能です。

例としてPart1とDrawing1を開き、Drawing1にはテーブル(1列2行以上)を
配置し、Drawing1をアクティブにした状態で下記のマクロを実行します。

最初にDrawing1のテーブルを指定。
 ↓
次にPart1の形状セット.1を指定。
 ↓
テーブルの
1行目-Partファイルのパーツ番号
2行目-形状セット名
が書き込まれます。

画像上の実行前 下が実行後
********************
Sub CATMain()
'準備
Dim Drawing As DrawingDocument
Dim DrawingSelection 'As Selection
Dim DrawingSheet As DrawingSheet

If TryDrawDoc(CATIA.ActiveDocument, Drawing) Then
Set DrawingSelection = Drawing.Selection
Set DrawingSheet = Drawing.Sheets.ActiveSheet
Else
MsgBox ("DrawingSheetをアクティブにして下さい")
Exit Sub
End If

'出力先テーブル選択
Dim Status As String
Dim InputObjectType(0) As Variant
Dim DrawTable As DrawingTable

InputObjectType(0) = "DrawingTable"
Status = DrawingSelection.SelectElement2(InputObjectType, "出力先テーブルを選択して下さい/ESC-終了", False)
If Status = "Cancel" Then Exit Sub
Set DrawTable = DrawingSelection.Selection.Item2(1).Value

'対象の形状セット選択
Dim PartDocument 'As PartDocument ' ←型指定すると、ESC時エラーとなる
Dim HybridBody1 As HybridBody

InputObjectType(0) = "HybridBody"
Status = DrawingSelection.SelectElement4(InputObjectType, "こちらのテーブルに出力します", _
"対象となる形状セットを選択して下さい", False, PartDocument)
If Status = "Cancel" Then Exit Sub
Set HybridBody1 = PartDocument.Selection.Item2(1).Value

'テーブルに書き出し
With DrawTable
Call .SetCellString(1, 1, PartDocument.name) '選択されたPartのパーツ番号
Call .SetCellString(2, 1, HybridBody1.name) '選択された形状セット名
End With
End Sub

'DrawingDocumentのチェック
Private Function TryDrawDoc(ByRef Doc As Document, ByRef ReturnDoc As DrawingDocument) As Boolean
On Error Resume Next
Set ReturnDoc = Doc
If Err.Number = 0 Then
TryDrawDoc = True
Else
TryDrawDoc = False
End If
On Error GoTo 0
End Function


おなまえ
タイトル    
コメント ico ico ico ico ico ico ico ico ico ico ico ico ico ico ico
添付データ 添付可能ファイル GIF,JPEG,PNG,LHA,ZIP 最大データ 1000KB
データ 1
データ 2
暗証キー  記事メンテ時に使用(英数字で8文字以内)
投稿キー  (投稿時 投稿キー を入力してください)