Hot News aus dem CAD.de-Newsletter:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Bewegen von Selection im FrameTitleBlock

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:   Bewegen von Selection im FrameTitleBlock (457 mal gelesen)
C.Samer
Mitglied
CAD Administrator


Sehen Sie sich das Profil von C.Samer an!   Senden Sie eine Private Message an C.Samer  Schreiben Sie einen Gästebucheintrag für C.Samer

Beiträge: 70
Registriert: 03.05.2017

erstellt am: 15. Dez. 2017 09:44    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallöchen!

Nächste Hürde   Kann ich eine Selection (z.B. den Revision Block) in einem Drawing per Makro verschieben (Move-ähnlicher Befehl)?

Code:
oDrwSelection.Clear()
oDrwSelection.Add(oDrwView)
oDrwSelection.Search "Name=Frame_RevisionBlock_*,sel"

If oDrwSelection.Count = 0 Then
    Exit Sub
End If

'oDrwSelection.Move x,y



Danke!
Grüße, Christoph

[Diese Nachricht wurde von C.Samer am 11. Jan. 2018 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

bgrittmann
Moderator
Konstrukteur


Sehen Sie sich das Profil von bgrittmann an!   Senden Sie eine Private Message an bgrittmann  Schreiben Sie einen Gästebucheintrag für bgrittmann

Beiträge: 10840
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 15. Dez. 2017 09:53    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für C.Samer 10 Unities + Antwort hilfreich

Servus

Um was für ein Element bzw Elemente handelt es sich denn?
ggf musst du für jedes Unterelement die Koordinaten anpassen (zB 2DPoint - SetData; 2D-Detail - x und y)

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

C.Samer
Mitglied
CAD Administrator


Sehen Sie sich das Profil von C.Samer an!   Senden Sie eine Private Message an C.Samer  Schreiben Sie einen Gästebucheintrag für C.Samer

Beiträge: 70
Registriert: 03.05.2017

erstellt am: 15. Dez. 2017 10:15    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Es handelt sich um den Revisions-Block im Drawing, also "Linie" und "Text".
An eine For-Schleife, welche jedes Element einzeln durchläuft, habe ich auch schon gedacht.
Ich habe jedoch gehofft, dass es einen Befehl gibt, mit dem ich alle Elemente gleichzeitig verschieben kann 

Grüße,
Christoph

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

bgrittmann
Moderator
Konstrukteur


Sehen Sie sich das Profil von bgrittmann an!   Senden Sie eine Private Message an bgrittmann  Schreiben Sie einen Gästebucheintrag für bgrittmann

Beiträge: 10840
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 15. Dez. 2017 10:22    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für C.Samer 10 Unities + Antwort hilfreich

Servus

Scheint leider nicht anders zu gehen.
Hier findest du noch einen anderen Lösung dazu (leider ändern sich dann die Namen der Elemente).

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

C.Samer
Mitglied
CAD Administrator


Sehen Sie sich das Profil von C.Samer an!   Senden Sie eine Private Message an C.Samer  Schreiben Sie einen Gästebucheintrag für C.Samer

Beiträge: 70
Registriert: 03.05.2017

erstellt am: 15. Dez. 2017 11:17    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hmm, dann bleibt mir wohl nichts anderes über 
Dankeschön!

LG Christoph

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

C.Samer
Mitglied
CAD Administrator


Sehen Sie sich das Profil von C.Samer an!   Senden Sie eine Private Message an C.Samer  Schreiben Sie einen Gästebucheintrag für C.Samer

Beiträge: 70
Registriert: 03.05.2017

erstellt am: 11. Jan. 2018 16:27    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Achja, hier mein Code zum Verschieben der einzelnen Elemente meines TitleBlocks an die richtige Position:
Code:
Sub MoveTitleBlock()
    If bClosing = True Then
        Exit Sub
    End If

    oDrwSelection.Clear()
    oDrwSelection.Add(oDrwView)
    oDrwSelection.Search "Name=Frame_TitleBlock_*,sel"
    If oDrwSelection.Count = 0 Then
        oDrwSelection.Clear()
        Exit Sub
    End If

    oDrwSelection.Clear()
    oDrwSelection.Add(oDrwView)
    oDrwSelection.Search "Name=Frame_Border_Inside_Right,sel"
    If oDrwSelection.Count = 0 Then
        MsgBox "Right Line of Frame not found.", vbOkOnly, "AddRevisionBlock"
        oDrwSelection.Clear()
        bClosing = True
        Exit Sub
    End If
    Dim iFTBXPos As Long
    Dim iFTBYPos As Long
    Dim iFTBCoord(3)
    oDrwSelection.Item(1).Value.GetEndPoints(iFTBCoord)
    iFTBXPos = iFTBCoord(0)
    iFTBYPos = iFTBCoord(1)
    oDrwSelection.Clear()

    oDrwSelection.Add(oDrwView)
    oDrwSelection.Search "Name=Frame_TitleBlock_Line_Vertical_14,sel"
    If oDrwSelection.Count = 0 Then
        MsgBox "First Vertical Line of Title Block not found.", vbOkOnly, "AddRevisionBlock"
        oDrwSelection.Clear()
        bClosing = True
        Exit Sub
    End If
    Dim iTBXPos As Double
    Dim iTBYPos As Double
    Dim iTBCoord(3)
    oDrwSelection.Item(1).Value.GetEndPoints(iTBCoord)
    iTBXPos = iTBCoord(0)
    iTBYPos = iTBCoord(1)
    oDrwSelection.Clear()

    Dim iXDif As Long
    Dim iYDif As Long
    iXDif = iFTBXPos - (iTBXPos + 180)
    iYDif = iFTBYPos - iTBYPos

    If iXDif = 0 And iYDif = 0 Then
        Exit Sub
    End If

    oDrwSelection.Add(oDrwView)
    oDrwSelection.Search "Name=Frame_TitleBlock_*,sel"
    Dim iDrwSelectionCount As Long
    iDrwSelectionCount = oDrwSelection.Count

    Dim oCurCircle As Circle2D
    Dim iCurCenter(1)
    Dim iCurRadius
    Dim oCurPic As DrawingPicture
    Dim oCurText
    Dim oCurLine
    Dim iCurOrigin(1)
    Dim iCurDirection(1)
    For i = 1 To iDrwSelectionCount
        Select Case TypeName(oDrwSelection.Item(i).Value)
            Case "DrawingText"
                Set oCurText = oDrwSelection.Item(i).Value
                oCurText.X = oCurText.X + iXDif
                oCurText.Y = oCurText.Y + iYDif
            Case "Line2D"
                Set oCurLine = oDrwSelection.Item(i).Value
                oCurLine.GetOrigin(iCurOrigin)
                oCurLine.GetDirection(iCurDirection)
                oCurLine.SetData iCurOrigin(0) + iXDif, iCurOrigin(1) + iYDif, iCurDirection(0), iCurDirection(1)
            Case "Circle2D"
                Set oCurCircle = oDrwSelection.Item(i).Value
                oCurCircle.GetCenter(iCurCenter)
                iCurRadius = oCurCircle.Radius
                oCurCircle.SetData iCurCenter(0) + iXDif, iCurCenter(1) + iYDif, iCurRadius
            Case "DrawingPicture"
                Set oCurPic = oDrwSelection.Item(i).Value
                oCurPic.X = oCurPic.X + iXDif
                oCurPic.Y = oCurPic.Y + iYDif
        End Select
    Next
    oDrwSelection.Clear()
End Sub


Vielleicht hilft es ja in der Zukunft jemandem  

Grüße aus Wien,
Christoph

[Diese Nachricht wurde von C.Samer am 11. Jan. 2018 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2019 CAD.de | Impressum | Datenschutz