Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Rechteck von Benutzer zeichnen lassen...und fortfahren

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:  Rechteck von Benutzer zeichnen lassen...und fortfahren (1467 mal gelesen)
Templer
Mitglied
System Engineer


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

Beiträge: 141
Registriert: 24.01.2003

erstellt am: 10. Mrz. 2011 12:50    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
Ich habe nun so ziemlich alles durchsucht, nur leider finde ich nicht die möglichkeit innerhalb eines Makros den benutzer aufzufordern ein Rechteck zu zeichnen (Am besten wäre es die Funktion "Rectangle" gleich aktiv dem User zu geben) und dann die beiden Vektorpunkte die der user setzt ins macro zu übernehmen um hier fortzufahren...

Einfach ausgedrückt, der User soll einen Rahmen ziehen können der sichtbar am schirm ist und der im anschluss wieder entfernt wird.

------------------
Non in omnes omnia conveniunt

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: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 10. Mrz. 2011 12:57    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 Templer 10 Unities + Antwort hilfreich

Servus
Schau dir mal in er Doku den Befehl IndicateOrSelectElement2D (unter Selection) an. Dort wird in einem Beispiel was ähnliches gemacht.

Gruß
Bernd

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

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

Templer
Mitglied
System Engineer


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

Beiträge: 141
Registriert: 24.01.2003

erstellt am: 14. Mrz. 2011 10:51    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

Danke für den hinweis

Aber eine Funktion für rechtecke habe ich nun nicht gefunden.
Dort wird nur ein Kreis beschrieben.

Auf grund dessen, habe ich nun für Rechtecke folgendes gemacht:

Status = Document.Indicate2D("Indicate first point buttom left", WindowLocation)
If (Status = "Cancel") Then
    MsgBox "Macro interrupted by User"    Exit Sub
End If
X0 = WindowLocation(0)
Y0 = WindowLocation(1)

InputObjectType(0) = "Point2D"
Status = "MouseMove": TempRect = 0
Status = Selection.IndicateOrSelectElement2D("Indicate second point top right", _
                                            InputObjectType, False, False, True, _
                                            ObjectSelected, WindowLocation)
If (Status = "Cancel") Then
    MsgBox "Macro interrupted by User"
    Exit Sub
End If
' We loop onto mouse moves without click
Dim Line2D(3)
Do While (Status = "MouseMove")
    If (TempRect) Then
        Selection.Add Line2D(0)
        Selection.Add Line2D(1)
        Selection.Add Line2D(2)
        Selection.Add Line2D(3)
        Selection.Delete
    End If
   
    Set Line2D(0) = Factory2D.CreateLine(X0, Y0, WindowLocation(0), Y0)
    Line2D(0).Name = "TempRect"
    Set Line2D(1) = Factory2D.CreateLine(WindowLocation(0), Y0, WindowLocation(0), WindowLocation(1))
    Line2D(1).Name = "TempRect"
    Set Line2D(2) = Factory2D.CreateLine(WindowLocation(0), WindowLocation(1), X0, WindowLocation(1))
    Line2D(2).Name = "TempRect"
    Set Line2D(3) = Factory2D.CreateLine(X0, WindowLocation(1), X0, Y0)
    Line2D(3).Name = "TempRect"
    TempRect = 1
    Status = Selection.IndicateOrSelectElement2D("Indicate second point top right", _
                                            InputObjectType, False, False, True, _
                                            ObjectSelected, WindowLocation)
    If (Status = "Cancel") Then
      Set drawingDocument1 = CATIA.ActiveDocument
      Set selection2 = drawingDocument1.Selection
      selection2.Search "Name=TempRect,all"
      selection2.Delete
      selection2.Clear
    MsgBox "Macro interrupted by User"
    Exit Sub
    End If

Loop

X1 = WindowLocation(0)
Y1 = WindowLocation(1)


Damit ist auch gleich ein error handling drinn, denn das hat in dem beispiel gefehlt.
Eventuell ist in diesem code auch ein wenig müll drinn, den muss ich erst aufräumen...
Vielleicht braucht das ja wer mal....oder weis wie man direkt ein Rechteck abrufen kann 

Jedenfalls für den Hinweis gibts 5 Unitis

------------------
Non in omnes omnia conveniunt

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: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 14. Mrz. 2011 19:35    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 Templer 10 Unities + Antwort hilfreich

Servus
Ich wollte ja nur auf das Beispiel mit dem Kreise verweisen, das zeigt wie es grundsätzlich funktionieren könnte. Hat ja geklappt.
Danke für den Code. 10Us sind unterwegs.

Gruß
Bernd

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

[Diese Nachricht wurde von bgrittmann am 14. Mrz. 2011 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)2023 CAD.de | Impressum | Datenschutz