Hallo zusammen,
Nach dem Schreiben des Postings ist es mir eingefallen:
Genau das ist der Lösungsweg !
Ich weiche einfach auf das CATScript aus.
Aufruf:
Dim SServ, LibPath, ScriptName, FunctionName
Dim Params(1)
Params(0) = difbreite
Params(1) = difhoehe
Set SServ = CATIA.SystemService
LibPath = "D:\temp" 'Verzeichnis in dem das Makro liegt
ScriptName = "Verschieben.CATScript"
FunctionName = "CATMain"
Call SServ.ExecuteScript(LibPath, catScriptLibraryTypeDirectory, ScriptName, FunctionName, Params)
Das CATScript:
Public DrwDocument As DrawingDocument
Public DrwSheets As DrawingSheets
Public DrwSheet As DrawingSheet
Public DrwView As DrawingView
Public DrwTexts As DrawingTexts
Public Text As DrawingText
Public Line As Line2D
Public GeomElems As GeometricElements
Public Hoehe As Double 'Blatt Höhe
Public Breite As Double 'Blattbreite
Public TranslationX As Double 'Horizontal translation to operate when changing standard
Public TranslationY As Double 'Vertical translation to operate when changing standard
Sub CATMain(TranslationX, TranslationY)
Set DrwDocument = CATIA.ActiveDocument
Set DrwSheets = DrwDocument.Sheets
Set DrwSheet = DrwSheets.ActiveSheet
Set DrwView = DrwSheet.Views.ActiveView
Set DrwTexts = DrwView.Texts
Set GeomElems = DrwView.GeometricElements
Dim rootName As String
Dim rootNameLength As Integer
Dim NbLineToMove As Integer
Dim NbTextToMove As Integer
Dim Origin(2)
Dim Direction(2)
rootName = "MessTabLine"
rootNameLength = Len(rootName)
NbLineToMove = GeomElems.Count
For i = 1 To NbLineToMove
Set Line = GeomElems.Item(i)
If (Left(Line.Name, rootNameLength) = rootName) Then
Line.GetOrigin(Origin)
Line.GetDirection(Direction)
Line.SetData Origin(0)+TranslationX, Origin(1)+TranslationY, Direction(0), Direction(1)
End If
Next
End Sub
vieleich hilft's ja noch Jemand.
------------------
Grüße aus dem Schwarzwald
Viktor
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP