Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Makro ? Werte messen und in Datei schreiben

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:  Makro ? Werte messen und in Datei schreiben (2261 mal gelesen)
Ladde2008
Mitglied



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

Beiträge: 10
Registriert: 21.04.2008

erstellt am: 22. Apr. 2008 14:36    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

Moin Leute,

habe ein Problem, dass womöglich doch nur mit einem Macro lösbar ist.
Und zwar bräuchte ich die Eigenschaften einer Polyline (im Part Assembly) ausgelesen. Diese Polyline setzt sich zusammen aus immer einem geradem Stück und dann einem Kreissegment, wieder ein gerades Stück usw.
Nun muß ich wissen wie lang die geraden Stücke sind und wie lang bzw. welchen Winkel die Kreisstücke haben. (Notfalls als Summe, aber besser jedes Stück einzeln). Ggbf. reichen auch die Koordinaten der Punkte, daraus müsste sich dann ja Länge und Winkel selbst berechnen lassen; insofern Radius gegeben.

Kenne mich in VisalBasic einigermaßen aus, aber nicht im Zusammenhang mit Catia.
Der Makro Rekorder bringt mir im ersten Anlauf auch rein gar nichts, da gar nichts aufgezeichnet wird, wenn ich "Messure Item" durchführe.

Als zweites käme dann irgendwann, dass die Werte in eine Datei geschrieben werden; oder wenn's einfacher geht auch irgendwo anders hin, wo ich's per Copy&Pate in eine Datei einfügen kann. Ich denke, das wird dann nicht so das Problem sein.


Bitte, Bitte helft mir.
Wenn noch was unklar ist, bitte fragen.

Gruß,
Lars

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

Ladde2008
Mitglied



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

Beiträge: 10
Registriert: 21.04.2008

erstellt am: 06. Mai. 2008 13:37    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

So, nun habe ich was hinbekommen, was einigermaßen läuft, jedoch mit einem gealtigen Hacken!
Und zwar dürfen die Punkte nicht den gleichen Namen haben, sonst wird immer der erste genommen, da mein Code nur über den Namen sucht. (siehe ***)

Wenn ich da schon eine Referenz habe, dann sollte sich damit doch mehr machen lassen, als nur den Namen rauszuziehen.


Code:
'-----------------------------------------
' Makro zeigt die Koordinaten von einer oder mehrerer
' zuvor selektierten Polylines in MessageBoxes an
'-----------------------------------------

Sub CATMain()


'Allgemeine Variablen zum CATIA-Dokument
  DIM oDoc AS Document 'Das CATIA-Dokument
  Dim oSelection AS Selection 'Die aktuelle Auswahl
''Dim oPart AS Part 'Das zugehÎrige Part (MuÞ vorhanden sein!)


'Variablen fÏr die Polyline-DÏrchlÌufe
  DIM oPolyLine         AS HybridShapePolyline 'Polyline, die untersucht wird
  DIM oPolyLineElement AS HybridShapePointCoord 'Punkt der Polylinie
  DIM oRefPolyLineElement AS Reference 'Referenz auf Punkt der Polylinie
  DIM oElementRadius         AS Length 'Biegeradius der Polyline
  DIM P_X, P_Y, P_Z         AS DOUBLE 'Koordinaten eines Punktes


'Variable fÏr SchleifendurchlÌufe
  DIM i, n         AS LONG

  Set oDoc = CATIA.ActiveDocument
'  Set oPart  = CATIA.ActiveDocument.Part 'DEBUG: GEHT GRAD NICHT, DA KEIN PART !
  Set oSelection = oDoc.Selection


'---------------------------------------------------------
'!!! POLYLINE NACH DEM START DES MAKROS SELEKTIEREN !!!
'Dim aSel(0)
'aSel(0) = "HybridShapePolyline"
' oSelection.SelectElement2 aSel, "Polylinie auswaehlen", False
'---------------------------------------------------------


  FOR n = 1 TO oSelection.Count 'Alle selektierten Polylines nacheinander durchgehen

'TBD: Sicherheitsabfrage, ob auch wirklich eine POLYLINE selektiert wurde
    SET oPolyLine = oSelection.Item(n).Value 'Die n-te Polyline nehmen

    MsgBox  oPolyLine.Name 'DEBUG: Zeige den Namen der Polyline an (SpÌter dann -> Schreiben in Datei)

    'Schleife aufbauen und Punktkoordinaten auslesen
    FOR i = 1 TO oPolyLine.NumberOfElements
      oPolyLine.GetElement  i, oRefPolyLineElement, oElementRadius 'Das i-te

      'Finde zu der Referenz das passende Objekt
'**** 'ACHTUNG: Wenn mehrere Points den selben Namen haben, wird immer der erste genommen !
      SET oPolyLineElement = oPolyLine.Parent.GetItem (oRefPolyLineElement.DisplayName) 'Die Points und die Polyline hÌngen in der selben Ebene

'      SET oPolyLineElement = oPart.FindObjectByName(oRefPolyLineElement.DisplayName) '!!! SETZT VORAUS, DASS DER NAME DES POINTS NUR EINMAL VORKOMMT !!!!
' Zudem muÞ in Catia dann auch ein PART sein 

      'Koordinaten und Biegeradius des Punktes
      P_X      = oPolyLineElement.X.Value
      P_Y      = oPolyLineElement.Y.Value
      P_Z      = oPolyLineElement.Z.Value
      Radius = oElementRadius.Value 'Der Radius mÏsste fÏr unserem Fall immer gleich bleiben (kÎnnte aber in Catia je Biegung unterscheidlich sein)

      'DEBUG: Werte anzeigen(SpÌter dann ->Schreiben in Datei)
      MsgBox oPolyLineElement.Name & vbLf & "x = " & P_X & vbLf &"y = " & P_Y& vbLf &"z = "&P_Z & vbLf & "r = " & radius

    NEXT
  NEXT

END SUB


HILFE !

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