Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Erstellung von Blöcken

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:  Erstellung von Blöcken (1065 mal gelesen)
Tobias58931
Mitglied



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

Beiträge: 13
Registriert: 12.12.2011

CATIA V5 R20
Win 7 Professional

erstellt am: 03. Mai. 2012 20:07    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 ein Makro, mit dem ich vorher in CATIA ausgewählte Punkte als Kreismittelpunkte definiere und um jeden Punkt einen Kreis ziehen kann:

Sub CATMain()
Set meinPartDocument = CATIA.ActiveDocument
Set meinPart = meinPartDocument.Part
Set meineHybridBodies = meinPart.HybridBodies.Add()
    meineHybridBodies.Name = "Kreise"
Set meineAuswahl = CATIA.ActiveDocument.Selection
Durchmesser = 20
Durchmesser = InputBox ("Bitte den Durchmesser der Kreise eingeben", "Durchmesser")
    AnzahlDerPunkte = meineAuswahl.Count
        For i = 1 To AnzahlDerPunkte
            Set Punkt = meineAuswahl.Item(i).Value

Set originElements1 = meinpart.OriginElements
Set Ebene = originElements1.PlaneXY

Set EbenenReferenz = meinpart.CreateReferenceFromObject(Ebene)         
Set meinehybridShapeFactory = meinPart.HybridShapeFactory
Set meinKreis =meinehybridShapeFactory.AddNewCircleCtrRadWithAngles(Punkt, EbenenReferenz, False, Durchmesser, 0, 360)
meinehybridBodies.AppendHybridShape meinKreis
meinpart.InWorkObject = meinKreis

Next
meinPart.Update
End Sub

das funktioniert auch soweit.

Jetzt möchte ich wiederum bestimmte Kreise auswählen und dann wieder ein Makro starten, was mir nun Zylinder generiert. Die Kreise sind sozusagen die Skizze der Zylinder
Ich habe das gleiche Makro als Grundlage genommen, aber irgendwie läuft es noch nicht:

Sub CATMain()
Set meinPartDocument = CATIA.ActiveDocument
Set meinPart = meinPartDocument.Part
Set meineAuswahl = CATIA.ActiveDocument.Selection

Hoehe = 20
Hoehe = InputBox ("Bitte die Hoehe der Zylinder eingeben", "Hoehe")
    AnzahlDerKreise = meineAuswahl.Count
Set meineShapeFactory = meinPart.ShapeFactory

        For i = 1 To AnzahlDerKreise
            Set Kreis = meineAuswahl.Item(i).Value

Set originElements1 = meinpart.OriginElements
Set Ebene = originElements1.PlaneXY


Set EbenenReferenz = meinpart.CreateReferenceFromObject(Ebene)         
Set meinZylinder = meineShapeFactory.AddNewPadFromRef(Kreis, Hoehe)

meinehybridBodies.AppendShape meinZylinder
meinPart.InWorkObject = meinZylinder

Next
meinPart.Update
End Sub


Hat jemand eine Idee, woran es liegen könnte? Vielen Dank schonmal!

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: 03. Mai. 2012 22: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 Tobias58931 10 Unities + Antwort hilfreich

Servus
Bitte Systeminfo ausfüllen.
Was mir auffällt:
- Bei AddNewPadFromRef muss eine Reference übergeben werden (zB Set kreis = meineAuswahl.Item(i).Reference)
- AppendShape geht nur im Flächendesign. PartFeatures werden AFAIR im aktuellen Körper also zuvor Mainbody aktv setzen) erstellt

Gruß
Bernd

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

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

Tobias58931
Mitglied



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

Beiträge: 13
Registriert: 12.12.2011

CATIA V5 R20
Win 7 Professional

erstellt am: 04. Mai. 2012 15:59    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, die Blöcke erstellt er mittlerweile, aber die Kreise werden noch nicht als Referenz erkannt.


Sub CATMain()
Set Part1Document = CATIA.ActiveDocument
Set Part1 = Part1Document.Part
Set meineAuswahl = CATIA.ActiveDocument.Selection
Set meineShapeFactory = Part1.ShapeFactory

Hoehe = 20
Hoehe = InputBox ("Bitte die Hoehe der Zylinder eingeben", "Hoehe")
AnzahlDerKreise = meineAuswahl.Count

For i = 1 To AnzahlDerKreise

Set Kreis = meineAuswahl.Item(i).Reference
Set pad1 = meineShapeFactory.AddNewPadFromRef(Kreis, Hoehe)
Set Kreis = meineAuswahl.Item(i).Value

Part1.InWorkObject = pad1

Next
End Sub

Wie müsste ich denn "CreateReferenceFromObject" benutzen? Nehme ich dann direkt "Kreis" als Object?

[Diese Nachricht wurde von Tobias58931 am 04. Mai. 2012 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: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 04. Mai. 2012 16: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 Tobias58931 10 Unities + Antwort hilfreich

Servus
Mehrere Dinge sind mir aufgefallen:
- wo hast du die Kreise selektiert?
  - Wenn du im Baum selektiert hast sollte die Reference-Bildung klappen
  - wenn du im 3D selektiert hast wird dir ggf ein BREP zurückgeliefert, aus diesem musst du dann die Referenze bilden (zB Set ref = Part1.CreateReferenceFromObject(meineAuswahl.Item(i).value.Parent)
- Vor dem erzeugen des Pads sollte der MainBody in Arbeit gesetzt werden.

Gruß
Bernd

PS: Bitte Systeminfo ausfüllen.

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

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

Tobias58931
Mitglied



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

Beiträge: 13
Registriert: 12.12.2011

CATIA V5 R20
Win 7 Professional

erstellt am: 04. Mai. 2012 16:34    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

Ich habe die Kreise im 3D selektiert, das mit dem BREP war das Problem, das wusste ich nicht, dass CATIA da einen Unterschied zwischen Baum und 3D macht.
Aber jetzt funktioniert es, vielen Dank!

Die mainBody-Aktivierung habe ich auch mit reingenommen, bzw. man könnte ihn natürlich auch kurz im Baum in Bearbeitung definieren.

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