Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  2D-Elemente verschieben (Translate/Move)

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:  2D-Elemente verschieben (Translate/Move) (3126 mal gelesen)
louis
Mitglied
Geschäftsführer


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

Beiträge: 93
Registriert: 07.05.2001

V5 R19/R2014, WIN7, Visual Basic6.0 SP6

erstellt am: 29. Aug. 2003 11:28    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

Hallo Zusammen,

ich möchte in einer Zeichnung alle Texte um einen Wert in X verschieben.
Makro-Editor und alle mir bekannten Doku's : Fehlanzeige.

Views etc. sind klar. Mir fehlt nur der Befehl zum Verschieben !

Hat jemand einen Lösungsansatz ?

(Nachtrag
Die Punkte der einzelnen Elemente(Linie, Kreis, Text etc.) zu veraendern ist eine Lösung.
Gibt es noch die Lösung der Vektorverschiebung des ganzen Elementes ?


(mytext.X = mytext.X - 2 ist eine Möglichkeit fuer Texte)


Vielen Dank im Voraus

Louis


[Diese Nachricht wurde von louis am 29. August 2003 editiert.]

[Diese Nachricht wurde von louis am 29. August 2003 editiert.]

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

cevk
Mitglied
Entwicklung / Admin


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

Beiträge: 45
Registriert: 03.02.2005

erstellt am: 23. Jan. 2008 13:11    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 louis 10 Unities + Antwort hilfreich

Hallo louis,
Hallo Zusammen,

Habe jetzt das gleiche Problem.
Das mit den Texten ist klar aber Linien?

Hast Du, oder jemand Anderst, eine möglichkeit gefunden das auch mit selections zu machen?

------------------
Grüße aus dem Schwarzwald
Viktor

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


Ex-Mitglied



erstellt am: 23. Jan. 2008 13:45    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hallo vk,

ich hatte vor Jahren (so Anno 2001) mal eine Programmierung versucht, bei der Linien gedreht und verschoben wurden. Dabei mußte ich die Koordinaten umrechnen, die zu den Linien gehören.

Viele Grüße in den schwäbischen Busch,

CEROG

------------------
CATIA-FAQ

http://www.cad-gaenssler.de

cevk
Mitglied
Entwicklung / Admin


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

Beiträge: 45
Registriert: 03.02.2005

erstellt am: 23. Jan. 2008 15: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 louis 10 Unities + Antwort hilfreich

Hallo RG,

Danke für Deinen Beitrag. Bei sehr vielen Linien ist das halt sehr aufwendig, da ich von jeder Linie erst einmal den Startpunkt auslesen muß. Das ginge im CATScript über:
Code:
-----------------------------------------------------------------------------------------
For i = 1 To NbLineToMove
    Set Line = selection4.Item(i)
        Set Line = GeomElems.Item(10)
        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
-------------------------------------------------------------------------------------------

Aber in VB wird GetOrigin und GetDirection nicht unterstützt.
Damals Ano 2001 war das noch möglich. 

Wir aus dem schwäbischen Busch sind auch nicht auf den Kopf gefallen.

------------------
Grüße aus dem Schwarzwald
Viktor

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

cevk
Mitglied
Entwicklung / Admin


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

Beiträge: 45
Registriert: 03.02.2005

CATIA V5R19 SP9
Windows XP Prof SP3
MegaCad 2013
Windows 7 64 bit

erstellt am: 28. Jan. 2008 09:41    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 louis 10 Unities + Antwort hilfreich

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

MICHLICK
Mitglied
CAD Methodik Entwickler (CATIA; NX)


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

Beiträge: 455
Registriert: 20.06.2001

Der Aufwand bei Änderungen ist groß, wenn die Finger schneller klicken als das Gehirn denkt.

erstellt am: 23. Mai. 2024 07:40    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 louis 10 Unities + Antwort hilfreich

Jahre später, aber mir hat es gerade geholfen.

------------------
Gruß Michael B.

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)2024 CAD.de | Impressum | Datenschutz