Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  CATIA V5 Programmierung

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
  
CATIA V5 Grundkurs | Einsteiger - 5 Std. 15 Min
  
KISTERS 3DViewStation optimiert die Lizenzverwaltung für ihre Kunden, eine Pressemitteilung
Autor Thema:  CATIA V5 Programmierung (3509 mal gelesen)
dennisw
Mitglied
Konstrukteuer

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

Beiträge: 6
Registriert: 11.02.2009

WinXP Pro, 1Gb Arbeitsspeicher, 2,4 Ghz, 128 Mb Nvidia

erstellt am: 11. Feb. 2009 22:03    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 Kollegien und Kollegen,

ich bin ein absoluter Anfänger mit Programmierung. Ich möchte einen Skript für Schweißpunkte bzw. Schweißwolke  programmieren. So was ähnlich habe ich schon gesehen.  Das Makro soll in einem Datensatz (Part) automatisch die Punkte suchen und den Kugel mit D=3mm erstellen.
Man kann aber auch diese Punkte und die Kugelchen mit ZX-Ebene spiegeln. Falls jemand eine Ahnung hat, wie das programmieren kann werde ich mich für den Vorschlag freuen.

------------------
MfG

Dennis

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

Lusilnie
Mitglied



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

Beiträge: 1486
Registriert: 13.07.2005

erstellt am: 12. Feb. 2009 01:24    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 dennisw 10 Unities + Antwort hilfreich

Hallo dennisw,

willkommen im Forum!

Den Vorschlag kann ich schnell liefern, programmieren musst Du aber selber. Da kann ich nur helfen!

Also:
1.) alle Punkte suchen und selektieren, sprich in eine "Selektion" suchen
2.) um alle Elemente (Punkte) der Selektion eine "Sphere" (Kugelfläche - GSD-Workbench) mit gewünschten Radius erstellen
3.) Spiegelung? -> Punkt-Koordinaten auslesen, Y-Wert invertieren, Punkt mit neuen Koordinaten erstellen, Kugelfläche erzeugen

Ich hoffe, dies reicht Dir erst mal als Konzept, nun musst du es nur noch in ein Programm umsetzen ... 


Falls Du aber irgendwo nicht weiter kommst, frag einfach gezielt - am Besten mit CODE-Schnipsel...


mfg,
Lusilnie

------------------
Alle Aussagen zu DassaultSystemes-Produkten sind sehr optimistisch, selbst diese!!!

frei nach größeren Geistern

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

dennisw
Mitglied
Konstrukteuer

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

Beiträge: 6
Registriert: 11.02.2009

WinXP Pro, 1Gb Arbeitsspeicher, 2,4 Ghz, 128 Mb Nvidia

erstellt am: 22. Feb. 2009 01:33    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


selekt_in_part.pdf


punkt1.pdf

 
Hallo Lusilnie,

ich komme leider nicht weiter. Wie gesagt, ich bin ein Anfänger und mit Makro habe ich nicht wirklich gearbeitet, besser gesagt nur ganz einfache Makro. Die Lösung ist für mich zu schwer. Ich habe einige Themen in Forum angeschaut (die .pdf- Datei ). Selektieren kann ich, aber danach komme ich nicht weiter. Kannst du bitte helfen? Was muss ich weiter tun.
Über Makro werde ich mich sehr freuen.

MfG

wdennis

------------------
MfG

Dennis

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

CATIA V5R19

erstellt am: 22. Feb. 2009 09:14    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 dennisw 10 Unities + Antwort hilfreich

Servus
Nimm mal dieses Makro als Vorlage.
Vielleicht kommst du damit schon bis ans Ziel.

Gruß
Bernd

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

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

dennisw
Mitglied
Konstrukteuer

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

Beiträge: 6
Registriert: 11.02.2009

WinXP Pro, 1Gb Arbeitsspeicher, 2,4 Ghz, 128 Mb Nvidia

erstellt am: 22. Feb. 2009 18:04    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 bgrittmann,

vielen Dank für deine Mithilfe. Es hat mir sehr geholfen.
Ich habe folgende Makro ausprobiert.

Code:

Sub CATMain()
Set partDocument1 = CATIA.ActiveDocument
Set myPartDocument = CATIA.ActiveDocument
Set myPart = myPartDocument.Part
Set myAxis =myPart.CreateReferenceFromObject(myPart.AxisSystems.Item("Achsensystem.1"))

Set myHybridBodies = myPart.HybridBodies.Add()
myHybridBodies.Name = "Kugel"

Set mySelection = CATIA.ActiveDocument.Selection
Anzahl = mySelection.Count
For i = 1 To Anzahl
Set Pt = mySelection.Item(i).Value
Set myhybridShapeFactory = myPart.HybridShapeFactory
Set myhybridShapeSphere = myhybridShapeFactory.AddNewSphere(Pt, myAxis, 1.5, -45, 45, 0, 180)
myhybridShapeSphere.Limitation = 1
myHybridBodies.AppendHybridShape myhybridShapeSphere
myPart.InWorkObject = myhybridShapeSphere
Next
myPart.Update
End Sub

Die Kügelchen macht Catia in einem Geo-Set "Kugel". Ich möchte gern, dass die Kügelchen in einem Aktiven Geo-Set erzeugt werden. Dafür versuche ich Code zu kriegen:

Set myHybridbodies1 = part1.Hybridbodies
Set myHybridBody = oSelectedElement.Parent

und GEO-Set "Kugel" zu löschen. Klappt erst mal nicht. Hat jemand einen Vorschlag?

Noch besser wäre, wenn ich die Punkte mit ZX-Ebene gespiegelt hätte und noch für einen gespiegelten Punkt den Kugel erzeugen.
Hat jemand eine Ahnung?

------------------
MfG

Dennis

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


Ex-Mitglied



erstellt am: 22. Feb. 2009 19:03    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Mal ne Frage:
Möchtest du die Kugeln als Flächen (=innen hohl) oder als Körper?

------------------
Meine Firma  |  Website zum Buch Technisches Zeichnen mit CATIA V5

Wie stelle ich meine Fragen richtig?

dennisw
Mitglied
Konstrukteuer

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

Beiträge: 6
Registriert: 11.02.2009

WinXP Pro, 1Gb Arbeitsspeicher, 2,4 Ghz, 128 Mb Nvidia

erstellt am: 22. Feb. 2009 19:10    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

als Fläche, bzw. Sphere

------------------
MfG

Dennis

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

ogard1
Mitglied
Verfahrenstechniker


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

Beiträge: 442
Registriert: 12.09.2004

R19 SP2

erstellt am: 22. Feb. 2009 20:13    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 dennisw 10 Unities + Antwort hilfreich

Hallo,

Die Kügelchen macht Catia in einem Geo-Set "Kugel". Ich möchte gern, dass die Kügelchen in einem Aktiven Geo-Set erzeugt werden. Dafür versuche ich Code zu kriegen:

Set myHybridbodies1 = part1.Hybridbodies
Set myHybridBody = oSelectedElement.Parent

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

ogard1
Mitglied
Verfahrenstechniker


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

Beiträge: 442
Registriert: 12.09.2004

R19 SP2

erstellt am: 22. Feb. 2009 20: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 Nur für dennisw 10 Unities + Antwort hilfreich

Hallo,

Die Kügelchen macht Catia in einem Geo-Set "Kugel". Ich möchte gern, dass die Kügelchen in einem Aktiven Geo-Set erzeugt werden. Dafür versuche ich Code zu kriegen:

Set myHybridbodies1 = part1.Hybridbodies
Set myHybridBody = oSelectedElement.Parent

dann mußt du deinen Aktiven Geo-Set in work setzen,  part1.InWorkObject = hybridBody1

und GEO-Set "Kugel" zu löschen. Klappt erst mal nicht. Hat jemand einen Vorschlag?

das kann mann z.b. über Selektion machen


Dim hybridBody1 As HybridBody
Set hybridBody1 = hybridBodies1.Item("Kugel")

selection1.Add hybridBody1

selection1.Delete


Gruß

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

CATIA V5R19

erstellt am: 22. Feb. 2009 20:26    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 dennisw 10 Unities + Antwort hilfreich

Servus
Kleine Ergänzung zu ogard1. Lösche die Zeilen:
Set myHybridBodies = myPart.HybridBodies.Add()
myHybridBodies.Name = "Kugel"

aus dem Makro raus, dann wird dieses Set erst gar nicht angelegt.

Gruß
Bernd

@ogard1: Es gibt auch eine Edit-Funktion ;-)

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

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

dennisw
Mitglied
Konstrukteuer

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

Beiträge: 6
Registriert: 11.02.2009

WinXP Pro, 1Gb Arbeitsspeicher, 2,4 Ghz, 128 Mb Nvidia

erstellt am: 22. Feb. 2009 23:20    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 folgendes ausprobiert:

Code:
________________
Language="VBSCRIPT"


Sub CATMain()
Set partDocument1 = CATIA.ActiveDocument
Set myPartDocument = CATIA.ActiveDocument
Set myPart = myPartDocument.Part
Set myAxis =myPart.CreateReferenceFromObject(myPart.AxisSystems.Item("Achsensystem.1"))

Set myHybridBodies = myPart.Hybridbodies
myPart.InWorkObject = myHybridbodies

Set mySelection = CATIA.ActiveDocument.Selection
Anzahl = mySelection.Count
For i = 1 To Anzahl
Set Pt = mySelection.Item(i).Value
Set myhybridShapeFactory = myPart.HybridShapeFactory
Set myhybridShapeSphere = myhybridShapeFactory.AddNewSphere(Pt, myAxis, 1.5, -45, 45, 0, 180)
myhybridShapeSphere.Limitation = 1

myHybridbodies.AppendHybridShape myhybridShapeSphere
myPart.InWorkObject = myhybridShapeSphere

Next
myPart.Update
End Sub

das Makro läuft bis:

myHybridbodies.AppendHybridShape myhybridShapeSphere
myPart.InWorkObject = myhybridShapeSphere

und dann nicht mehr.Ich vermute mal, dass das mit dem:

Set myHybridBodies = myPart.Hybridbodies
myPart.InWorkObject = myHybridbodies

einen Zusammenhang hat. Ich komme noch einmal nicht weiter.Kann mir jemand bitte wieder helfen

------------------
MfG

Dennis

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

Thomas Harmening
Ehrenmitglied V.I.P. h.c.
Arbeiter ツ



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

Beiträge: 2897
Registriert: 06.07.2001

NX 10
Win 7

erstellt am: 23. Feb. 2009 01:13    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 dennisw 10 Unities + Antwort hilfreich

ersetze
Code:
Set myHybridBodies = myPart.Hybridbodies
myPart.InWorkObject = myHybridbodies

in
Code:
Set myHybridBodies = myPart.InWorkObject

und fertig dann etwa so? (Erzeugt auch den gespiegelten Punkt und die dazugehörige Kugel)

Code:
Sub CATMain()
'Set CATIA = GetObject("", "CATIA.Application") 'ist nur wegen Excel drinnen
Dim myPartDocument ' As Document
ReDim acoord(2)

Set myPartDocument = CATIA.ActiveDocument
Set myPart = myPartDocument.Part
Set myAxis = myPart.CreateReferenceFromObject(myPart.AxisSystems.Item("Achsensystem.1")) 'Axis mit dem Namen erforderlich

Set myHybridBodies = myPart.InWorkObject

Set mySelection = CATIA.ActiveDocument.Selection
 
Anzahl = mySelection.Count
    For i = 1 To Anzahl
    Set Pt = mySelection.Item(i).Value

        Set oPt = myHybridBodies.HybridShapes
            oPt.Item(i).GetCoordinates acoord
            a = (acoord(0) & ";" & acoord(1) & ";" & acoord(2) & Chr(10)) 'XYZ-Koordinate
            b = (acoord(0) & ";" & acoord(1) * -1 & ";" & acoord(2)      'XYZ-Koordinate gespiegelt

        'MsgBox (a & b)
           
        Set myhybridShapeFactory = myPart.HybridShapeFactory
        Set myhybridShapeSphere = myhybridShapeFactory.AddNewSphere(Pt, myAxis, 4, -45, 45, 0, 180)
            myhybridShapeSphere.Limitation = 1
            myHybridBodies.AppendHybridShape myhybridShapeSphere
     
        Set hybridShapePointCoord1 = myhybridShapeFactory.AddNewPointCoord(acoord(0), acoord(1) * -1, acoord(2))
            myHybridBodies.AppendHybridShape hybridShapePointCoord1
       
        Set myhybridShapeSphere = myhybridShapeFactory.AddNewSphere(hybridShapePointCoord1, myAxis, 4, -45, 45, 0, 180)
            myhybridShapeSphere.Limitation = 1
            myHybridBodies.AppendHybridShape myhybridShapeSphere
    Next
myPart.Update
End Sub


... und Scripte bitte immer als Code formatieren ;-)
... und gebt dem Betreff: Aussagekräftige Namen 

Tante Edith: Y-Wert acoord(1) korrigiert

[Diese Nachricht wurde von Thomas Harmening am 26. Feb. 2009 editiert.]

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

dennisw
Mitglied
Konstrukteuer

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

Beiträge: 6
Registriert: 11.02.2009

WinXP Pro, 1Gb Arbeitsspeicher, 2,4 Ghz, 128 Mb Nvidia

erstellt am: 25. Feb. 2009 22:58    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

ein vielen vielen Dank,

hat es geklappt.
Mit gespiegelte Variante habe ich probiert, klappt noch nicht. Catia spiegelt, aber nicht um die ZX-Ebene. Ich muss mal etwas fummeln um es zu kriegen.

Trotzdem vielen Dank

------------------
MfG

Dennis

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

Thomas Harmening
Ehrenmitglied V.I.P. h.c.
Arbeiter ツ



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

Beiträge: 2897
Registriert: 06.07.2001

NX 10
Win 7

erstellt am: 26. Feb. 2009 00: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 Nur für dennisw 10 Unities + Antwort hilfreich

Ah, die Punkte können auch auf der Rechten Seite = Y+ liegen?

Dann ersetze das zweimalige Vorkommen von Abs(acoord(1)) durch acoord(1) * -1
dadurch wird der Y-Wert invertiert und nicht nur wenn Negativ = positiv...

lieg wohl daran, dass ich zu 90% nur links arbeite ;-)

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