Option Explicit ' COPYRIGHT DASSAULT SYSTEMES 2003 ' *********************************************************************** ' Purpose: This macro allows you to instantiate a ditto in ' a view from a ditto in another document ' Author: ' Languages: VBScript ' Locales: English ' CATIA Level: V5R11 ' *********************************************************************** Sub CATMain() ' Set the CATIA popup file alerts to False ' It prevents to stop the macro at each alert during its execution CATIA.DisplayFileAlerts = False ' Optional: allows to find the sample wherever it's installed dim sDocPath As String sDocPath=CATIA.SystemService.Environ("CATDocView") If (Not CATIA.FileSystem.FolderExists(sDocPath)) Then Err.Raise 9999,,"No Doc Path Defined" End If ' Open the drawing document containing the existing ditto Dim oDrawingSource As DrawingDocument Set oDrawingSource = CATIA.Documents.Open(sDocPath & _ "\online\CAAScdDriUseCases\samples\CAADriInstantiateDittoSource.CATDrawing") ' Retrieve the sheet containing the ditto to be copied Dim oSheetSource As DrawingSheet Set oSheetSource = oDrawingSource.Sheets.Item("Sheet.3") ' Retrieve the view containing the ditto to be copied Dim oViewSource As DrawingView Set oViewSource = oSheetSource.Views.Item("View.1") ' Retrieve the ditto Dim oDitto As DrawingComponent Set oDitto = oViewSource.Components.Item(1) ' Create an object of selection for the source document Dim oSelectionSource As Selection Set oSelectionSource = oDrawingSource.Selection ' Clear the selection oSelectionSource.Clear ' Add the ditto to be duplicated in the selection oSelectionSource.Add oDitto ' Copy the view oSelectionSource.Copy ' Clear the selection oSelectionSource.Clear ' Open the drawing document where the ditto will be instantiated Dim oDrawingTarget As DrawingDocument Set oDrawingTarget = CATIA.Documents.Open(sDocPath & _ "\online\CAAScdDriUseCases\samples\CAADriInstantiateDittoTarget.CATDrawing") CATIA.ActiveWindow.ActiveViewer.Reframe ' Retrieve the sheet where the ditto will be instantiated Dim oSheetTarget As DrawingSheet Set oSheetTarget = oDrawingTarget.Sheets.Item("Sheet.1") oSheetTarget.Activate ' Retrieve the view where the ditto will be instantiated Dim oViewTarget As DrawingView Set oViewTarget = oSheetTarget.Views.Item("View.3") ' Indicate the ditto location Dim ReturnStatus As String Dim iDittoCoordinates(1) Dim oDraw Set oDraw = oDrawingTarget ReturnStatus = oDraw.Indicate2D("Indicate the ditto location", iDittoCoordinates) ' Create an object of selection for the target document Dim oSelectionTarget As Selection Set oSelectionTarget = oDrawingTarget.Selection ' Clear the selection oSelectionTarget.Clear ' Add the view in the selection, where the ditto will be instantiated oSelectionTarget.Add oViewTarget ' Paste the clipboard oSelectionTarget.Paste ' Clear the selection oSelectionTarget.Clear ' Retrieve the drawing components collection of the target drawing view Dim o2DComponents As DrawingComponents Set o2DComponents = oViewTarget.Components ' Retrieve the ditto and define its location Dim o2DComponent As DrawingComponent Set o2DComponent = o2DComponents.Item("DrwDetail.1") o2DComponent.X = iDittoCoordinates(0) o2DComponent.Y = iDittoCoordinates(1) ' Retrieve the modifiable text of the ditto Dim oText As DrawingText Set oText = o2DComponent.GetModifiableObject(1) ' Modify the modifiable text value Dim ReturnValue As String ReturnValue = InputBox("Enter a value", "", "New Value For Text") oText.Text = ReturnValue ' Clear the variables Set oText = Nothing Set o2DComponent = Nothing Set o2DComponents = Nothing Set oSelectionTarget = Nothing Set oDraw = Nothing Set oViewTarget = Nothing Set oSheetTarget = Nothing Set oDrawingTarget = Nothing Set oSelectionSource = Nothing Set oViewSource = Nothing Set oSheetSource = Nothing Set oDrawingSource = Nothing End Sub