Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  CATIA V5 Programmierung
  Flächenextract aus Solid mit Namen des Solid

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 48
  
KISTERS 3DViewStation: Germar Nikol - Der Visionär hinter der Erfolgsgeschichte, eine Pressemitteilung
Autor Thema:  Flächenextract aus Solid mit Namen des Solid (2454 mal gelesen)
Guenter Graff
Mitglied



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

Beiträge: 267
Registriert: 04.03.2001

CATIA V5R19SP9
AutoForm R irgendwas

erstellt am: 18. Jul. 2012 16:32    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 wollte aus "toten" Solids automatisiert eine Flächenableitung machen und den Namen des Solids an die jeweilige Fläche schreiben lassen. In der Makroaufzeichnung habe ich es geschafft, das CATIA aus dem Solid, den ich angewählt habe ein Extract macht, schaffe es aber nicht den Namen über die Eigenschaften an die neue Fläche zu bringen. Das Ganze sollte in einer Schleife laufen, dass alle Solids im Part abgearbeitet werden.
Vielleicht könntet Ihr mir helfen. Anbei der aufgezeichnete Code.

Language="VBSCRIPT"

Sub CATMain()

Set documents1 = CATIA.Documents

Set partDocument1 = documents1.Item("Adapter_FM_Konstruktion.CATPart")

Set part1 = partDocument1.Part

Set bodies1 = part1.Bodies

Set body1 = bodies1.Item("53_074__Kennzeichnungsstempel_Ohne_Zahl_Id33519")

Set reference1 = part1.CreateReferenceFromObject(body1)

Set hybridShapeFactory1 = part1.HybridShapeFactory

Set hybridShapeExtract1 = hybridShapeFactory1.AddNewExtract(reference1)

hybridShapeExtract1.PropagationType = 3

hybridShapeExtract1.ComplementaryExtract = False

hybridShapeExtract1.IsFederated = False

Set hybridBodies1 = part1.HybridBodies

Set hybridBody1 = hybridBodies1.Item("Geometrical Set.1")

hybridBody1.AppendHybridShape hybridShapeExtract1

part1.InWorkObject = hybridShapeExtract1

part1.Update

Set reference2 = part1.CreateReferenceFromObject(hybridShapeExtract1)

Set hybridShapeSurfaceExplicit1 = hybridShapeFactory1.AddNewSurfaceDatum(reference2)

hybridBody1.AppendHybridShape hybridShapeSurfaceExplicit1

part1.InWorkObject = hybridShapeSurfaceExplicit1

part1.Update

hybridShapeFactory1.DeleteObjectForDatum reference2

End Sub

------------------
Gruß


Günter

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

tberger
Mitglied
Application Manager CATIA V5 / V6


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

Beiträge: 1385
Registriert: 13.01.2007

WIN 7 64bit
V5R21SP3HF49
3DX/V6 R2016x

erstellt am: 27. Jul. 2012 10: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 Guenter Graff 10 Unities + Antwort hilfreich

Ich habe gerade im Moment kein CATIA, weil wir produktiv auf R21SP3 umstellen.

Müsste es in deinem Code nicht etwa so heissen, um den Namen des Extract dem Körpernamen gleichzusetzen:

hybridShapeExtract1.Name = body1.Name


einzufügen vor deinem part1.Update bzw. noch eine Zeile darüber.

------------------
Grüße aus dem Thurgau
Thomas

+++++++++++++++++++++++++++++++++

CATIA - eine Laune der Natur ...

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

Guenter Graff
Mitglied



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

Beiträge: 267
Registriert: 04.03.2001

CATIA V5R19SP9
AutoForm R irgendwas

erstellt am: 28. Jul. 2012 10: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

Hallo Thomas,

dein Eintrag hat super funktioniert.
Ich habe aus einer deiner anderen Skripte ( http://ww3.cad.de/foren/ubb/Forum133/HTML/009545.shtml ) den Eintrag mit der Schleife gefunden und etwas für mich angepasst.Dort werden jetzt alle Bodys durchsucht. Kann ich den Body "PartBody", welcher standardmäßig bei CATIA in der engl. Umgebung vorhanden ist, aber keine Geometrie enthält beim Durchlauf des Makros ausklammern?
An dieser Stelle hängt sich das Makro auf, da kein Solid vorhanden ist, der abgeleitet werden soll.


For I = 1 To part1.Bodies.Count
Set MyBodyToExport = bodies1.Item(I)

------------------
Gruß


Günter

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

DanielFr.
Ehrenmitglied V.I.P. h.c.
Manager


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

Beiträge: 2506
Registriert: 10.08.2005

HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3

erstellt am: 28. Jul. 2012 11: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 Guenter Graff 10 Unities + Antwort hilfreich

Hallo,

was heißt es hängt sich auf? Es wird einen definierten Fehler (mit Fehlerbeschreibung und Fehlercode liefern) und sich nicht aufhängen!!!

Aufhängen heißt das du keine Möglichkeit mehr hast einzugreifen (händisch oder per Script) und somit im letzen Fall den Prozess zerstören musst. Dies wird hier aber sicher nicht der Falls sein.

Laufzeitausnahmen können mittels Laufzeitfehlerbehandlung abgehandelt werden. Ich schreibe hier mal ein Beispiel und du kannst versuchen es umzusetzen:

Code:

Sub CATMain()

'***DEKLARATIONEN
Dim i As Integer 'Variable als Ganzzahl deklarieren

On Error Resume Next 'Schaltet die automatische Laufzeitfehlerbehandlung von VBA aus

i = 1 / 0 'Teilung durch 0 löst einen Fehler aus

'Behandlung des Fehlers direkt im Script
If Err.Number = 0 Then
    MsgBox "Kein Fehler"
Else
    MsgBox "Ein Laufzeitfehler ist aufgetreten:" + vbNewLine + _
            "Fehlernummer:" + vbTab + CStr(Err.Number) + vbNewLine + _
            "Beschreibung:" + vbTab + Err.Description, vbCritical, "Fehler"
End If

'Schaltet die automatische Laufzeitfehlerbehandlung wieder an
On Error GoTo 0

End Sub


Hierbei kann der Programmierer selbst entscheiden was, bei welchen Fehler (Err.Number) zu tun ist. Der Vorteil hierbei liegt auf der Hand:

Du kannst alle Körper in deiner Schleife behandeln. Liefern sie einen Fehler werden sie ignoriert. Somit kannst du z.B. auch Bauteile behandeln die mehr als einen leeren Körper haben. Das Script wird somit wesentlich stabiler weil du ja vorher nicht immer weißt wie deinen Eingangsbedingungen (Randbedingungen) aussehen!

------------------
MFG Daniel

Systeminformation | Inoffizielle CATIA Hilfeseite | CATIA FAQ | Suche | TraceParts (Normteile...) | 3D Content Central (noch mehr Normteile...)

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

Guenter Graff
Mitglied



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

Beiträge: 267
Registriert: 04.03.2001

CATIA V5R19SP9
AutoForm R irgendwas

erstellt am: 28. Jul. 2012 12: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

Hallo Daniel,

natürlich ist es ein Laufzeitfehler und nicht ein "Aufhänger". Ich bin nur der Neuling in der Programmierung. 
Erst einmal vielen Dank für die schnelle Hilfe. Ich werde es einbauen und Rückmeldung geben.

------------------
Gruß


Günter

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

Guenter Graff
Mitglied



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

Beiträge: 267
Registriert: 04.03.2001

CATIA V5R19SP9
AutoForm R irgendwas

erstellt am: 28. Jul. 2012 13: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


1.jpg


2.jpg

 
Hallo Daniel,

ich tu mich etwas schwer mit der Abfrage ob im Körper "PartBody" ein Solid drin ist oder nicht.
Wie Du in den Bildern siehst, ist das Makro durchgelaufen, wenn ein Solid drin vorhanden ist und bleibt "stehen", wenn der Body leer ist.
Der Body ist immer vorhanden und immer leer. Ich will bei meiner Abfrage gewährleisten, dass das Makro den Körper "PartBody" immer aussen vor lässt.
Vielleicht kannst Du mir hierbei helfen.

------------------
Gruß


Günter

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

Guenter Graff
Mitglied



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

Beiträge: 267
Registriert: 04.03.2001

CATIA V5R19SP9
AutoForm R irgendwas

erstellt am: 28. Jul. 2012 16:18    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 hab das Problem gelöst.

on error resume next 

Vielen Dank für eure Unterstützung.

------------------
Gruß


Günter

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

CATIA V5R19

erstellt am: 28. Jul. 2012 16: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 Nur für Guenter Graff 10 Unities + Antwort hilfreich

Servus
AFAIR kannst über Part.Mainbody den Mainbody direkt ansprechen, dann musst du nur noch dein aktuell vom Makro bearbeitet Körper mit diesem Vergleich zB:
Code:
If Not (part1.MainBody Is body1) Then
    'Tu was
End If

Hier findest du noch einen Beitrag wie man feststellt, ob ein Körper leer ist.

Gruß
Bernd

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

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

Schallah
Mitglied


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

Beiträge: 1
Registriert: 15.11.2012

erstellt am: 15. Nov. 2012 11:09    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 Guenter Graff 10 Unities + Antwort hilfreich

Interessanter Beitrag. Ich bräuchte gerade dieses Makro. Wäre es möglich, das gesamte Makro zur Verfügung zu stellen?
Vielen Dank und viele Grüße.

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