Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Bounding Box (Länge, Breite, Höhe)

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
  
Die KISTERS 3DViewStation V2022 – Fortgeschrittenes Visualisierungswerkzeug für 3D-CAD-Daten durch neue Funktionen
Autor Thema:  Bounding Box (Länge, Breite, Höhe) (22990 mal gelesen)
Gepetto
Mitglied
Diplomand auf Arbeitssuche


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

Beiträge: 32
Registriert: 04.03.2009

erstellt am: 20. Apr. 2009 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


measure_inertia.jpg


pa.txt

 
Hallo Zusammen,

Ich muss mit einem Makro die Rohteilabmaße bestimmen. Dabei bin ich auf die Funktion Measure Inertia gestoßen. Ich habe aber noch nicht wirklich herausgefunden wie ich aus dieser die BoundingBox auslesen kann. Wenn man sich die "pricipalaxes" ausgeben lässt, gibt er leider nur die üblichen 9 Parameter aus.
Wenn ich aber dort nun die Funktion "Export" verwende oder einfach auf "keep measure" klicke. Dann sind die Parameter BBLx, BBLy und BBLz vorhanden. Bei "Export" schreibt Catia diese hinter die 9 "Pricipalaxes" in der txt.Datei und bei "keep measure" werden diese als Parameter in "InertiaVolume" unter "Applications" angelegt.

Also gibt es diese Parameter.

Über:
    Dim oInertia As Object
    Set oInertia = CATIA.ActiveDocument.Product.GetTechnologicalObject("Inertia")

    Dim dMass As Double
    dMass = oInertia.Mass  'Masse
    Dim coordinates(2)
    oInertia.GetCOGPosition coordinates  'Center of Gravity
    Dim Matrix(15)
    oInertia.GetInertiaMatrix Matrix    'Massenträgheit
    Dim Values(2)
    oInertia.GetPrincipalMoments Values  'Hauptmomente
    Dim Components(15)
    oInertia.GetPrincipalAxes Components  'Hauptachsen

lassen sich viele Informationen auslesen, aber an die BoundingBox komme ich so nicht!

Bitte helft mir mal! Ich muss doch irgendwie an die BoundingBox kommen können!

MfG Jan

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

CATIA V5R19

erstellt am: 20. Apr. 2009 14:08    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 Gepetto 10 Unities + Antwort hilfreich

Servus
AFAIR gibt es schon ein Script dazu hier im Forum. Einfach mal suchen (zB nach Bounding Box)

Gruß
Bernd

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

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

Gepetto
Mitglied
Diplomand auf Arbeitssuche


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

Beiträge: 32
Registriert: 04.03.2009

erstellt am: 20. Apr. 2009 15: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

Ich hab das Script auch schon gefunden. Ich habe aber keinen Nutzen daraus ziehen können. Außerdem ist es nicht wirklich über die Funktion BoundingBox. Es wird ähnlich wie die Funktion, eine Box erstellt.

Ich würde aber gerne die Parameter aus der Funktion "Inertia" auslesen. Wie kann ich das machen?

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

zoltan.bekesi
Mitglied



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

Beiträge: 321
Registriert: 22.10.2006

Job:
CATIA V5R19 / XP 32bit
MS Office 2003
Microstation V8 2004 Edition
DELL Precision M6300

erstellt am: 20. Apr. 2009 18:55    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 Gepetto 10 Unities + Antwort hilfreich

Hallo Jan,

soweit ich weiß, gibt es in CATIA keine Möglichkeit den Boundingbox abzufragen.
Man muss es, mit Geometrieerzeugung ermitteln.
Die einzige Möglichkeit ohne Geometrie war es durch Schnitte (es gibt ein Beispiel dazu in der CATIA VBA Hilfe), da musst du aber die richtige Ebene für den Schnitt nehmen und es scheitert an diesen Punkt.
Vielleicht weiß kennt aber jemand was besseres.

Gruß,
Zoltan

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

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


Sehen Sie sich das Profil von denyo_1 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: 20. Apr. 2009 19:12    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 Gepetto 10 Unities + Antwort hilfreich

Hallo,

ich geb dir recht wir hatten das Thema schon ein paar mal und sind immer hängen geblieben weil es keine Methode gibt die Box abzufragen. D.H. entweder du machst es über das schon existierende Makro oder die machst es mit dem Schnitt (würde ich aber nicht machen weil es sehr fehleranfällig ist  )

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

Die KATJA ist halt doch nur ne zickige Französin

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

Gepetto
Mitglied
Diplomand auf Arbeitssuche


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

Beiträge: 32
Registriert: 04.03.2009

erstellt am: 21. Apr. 2009 09:47    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 weiss es ist keine schöne Lösung, aber kann man nicht die Funktion "Measure Inertia" als solche aufrufen, dann den Haken bei "keep measure" setzen, "OK" klicken und dann die Parameter im Strukturbaum auslesen lassen?

Es wird wahrscheinlich ein wirwar von StartCommands und SendKeys. Aber würde das gehen und wenn ja kann jemand mal nen Ansatz schreiben?

MfG Jan

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

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


Sehen Sie sich das Profil von denyo_1 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: 21. Apr. 2009 10: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 Nur für Gepetto 10 Unities + Antwort hilfreich

Hallo,

das mit StartCommand fällt IMHO flach. Du wirst schon am zweiten Schritt verzweifel. Das Problem ist das du dem StartCommand Befehl kein Objekt übergeben kannst und somit brauchst du nach dem StartCommand erst mal einen Mausklick um ihm zu sagen wovon er überhaupt eine Trägheit messen soll.

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

Die KATJA ist halt doch nur ne zickige Französin

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

.det
Mitglied


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

Beiträge: 2
Registriert: 21.04.2009

erstellt am: 21. Apr. 2009 21: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 Nur für Gepetto 10 Unities + Antwort hilfreich

Hallo,
wenn man es schaffen würde, alle Vertexes eines Bodies auszulesen, könnte man auch überlegen die bounding box selbst zu berechnen. Eine Achsen-Orientierte Bounding Box ist dabei recht einfach zu berechnen (suche kleinstes und größtes x/y/z, berechne anschließend Zentrum und Größe aus diesen Werten) und wäre vermutlich auch laufzeittechnisch schnell genug.
mfg
.det

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

zoltan.bekesi
Mitglied



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

Beiträge: 321
Registriert: 22.10.2006

Job:
CATIA V5R19 / XP 32bit
MS Office 2003
Microstation V8 2004 Edition
DELL Precision M6300

erstellt am: 22. Apr. 2009 16:54    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 Gepetto 10 Unities + Antwort hilfreich

Hallo .det,

unter folgender Link findest du ein Algorithmus um sowas zu verwirklichen.
mit Selection.Search kannst du eine Abfrage für alle Vertices machen, von jeden Vertex die Koordinaten auslesen. Ich bin aber der Meinung, für einen Part ist die Methode mit Geometrieerzeugung bedeutend einfacher (und wahrscheinlich auch schneller, da selection.search bei komplexe Sachen auch nicht gerade der schnellste ist).
Algorithmus für Bounding Container in C++

Gruß,
Zoltan

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

Jens Hansen
Mitglied
CAx-Spezialist


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

Beiträge: 1056
Registriert: 05.08.2000

erstellt am: 22. Apr. 2009 17:12    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 Gepetto 10 Unities + Antwort hilfreich

Hallo,
in meinem Buch habe ich das Problem durch bestimmen der Extremwerte bzw. Erzeugen von Extremum gelöst. Wichtig dabei ist noch, dass die Schwerpunktachsen bestimmt werden, entlang denen dann die Messung der Abstände zwischen den jeweiligen Extremim gemacht wird.

SG

Jens Hansen

------------------
Inoffizielle CATIA-Hilfeseite
Private Seite
Xing
Kochbuch - CATIA V5 automatisieren

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

zoltan.bekesi
Mitglied



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

Beiträge: 321
Registriert: 22.10.2006

Job:
CATIA V5R19 / XP 32bit
MS Office 2003
Microstation V8 2004 Edition
DELL Precision M6300

erstellt am: 22. Apr. 2009 22:06    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 Gepetto 10 Unities + Antwort hilfreich

Hallo .get,

falls du die Geometrieerzeugung unbedingt vermeiden willst, ist anbei ein CodeTeil, was alle Vertices sucht und in eine Schleife Min/Max in den 3 Achsenrichtungen bestimmt. Ist ziemlich einfach und unglaublich langsam. Es ist auch nicht zu erwarten, dass solche Programme schneller laufen, da eine Suche nach den Punkten und eine Messung auf jeden Punkt angewendet werden muss (und diese Operationen sind von einen Makro aus nicht besonders schnell).
Die Vertexsuche lieferte bei mir allerdings auch ganz komische Ergebnisse. Ich empfehle dir nochmals diese Idee zu verwerfen. Wie Jens schon geschrieben hat, steht in sein Buch ja bereits die Lösung fertig drin.

Code:
Sub CATMain()

    Dim sStart As String
    sStart = Format(Now(), "HH:MM:SS")
    Dim adBoundingBoxCoordinates(5) As Double
    Dim adVertexCoordinates(2)
    Dim oSel As Selection
    Dim oActDoc As Document
    Dim i As Integer
    Dim oSelElement As SelectedElement
    Dim oSPAWorkbench As SPAWorkbench
    Dim oMeasurable    'As Measurable

    If CATIA.Documents.Count = 0 Then
        MsgBox ("No document!")
        Exit Sub
    End If
    Set oActDoc = CATIA.ActiveDocument
    Set oSel = oActDoc.Selection
    Set oSPAWorkbench = oActDoc.GetWorkbench("SPAWorkbench")
    oSel.Clear
    oSel.Search ("Topology.Vertex;all")

    If oSel.Count2 = 0 Then
        Exit Sub
    End If

    For i = 1 To oSel.Count2
        Set oSelElement = oSel.Item2(i)
        Set oMeasurable = oSPAWorkbench.GetMeasurable(oSelElement.Reference)
        If oMeasurable.GeometryName = CatMeasurablePoint Then
            oMeasurable.GetPoint adVertexCoordinates
            'hier müsste man ggf. in ein anderes Koordinatensystem umrechnen
    '        Debug.Print adVertexCoordinates(0), adVertexCoordinates(1), adVertexCoordinates(2)
            If i = 1 Then
                CheckForMinMax adVertexCoordinates, adBoundingBoxCoordinates, True
            Else
                CheckForMinMax adVertexCoordinates, adBoundingBoxCoordinates, False
            End If
        End If
    Next

    Debug.Print "X min max ", adBoundingBoxCoordinates(0), adBoundingBoxCoordinates(1)
    Debug.Print "Y min max ", adBoundingBoxCoordinates(2), adBoundingBoxCoordinates(3)
    Debug.Print "Z min max ", adBoundingBoxCoordinates(4), adBoundingBoxCoordinates(5)

    Debug.Print sStart, Format(Now(), "HH:MM:SS")

End Sub

Sub CheckForMinMax(ByRef adVertex, ByRef adMinMax, Init As Boolean)

    If Init Then
        adMinMax(0) = adVertex(0)
        adMinMax(1) = adVertex(0)
        adMinMax(2) = adVertex(1)
        adMinMax(3) = adVertex(1)
        adMinMax(4) = adVertex(2)
        adMinMax(5) = adVertex(2)
    Else
        adMinMax(0) = dMin(CDbl(adVertex(0)), CDbl(adMinMax(0)))
        adMinMax(1) = dMax(CDbl(adVertex(0)), CDbl(adMinMax(1)))
        adMinMax(2) = dMin(CDbl(adVertex(1)), CDbl(adMinMax(2)))
        adMinMax(3) = dMax(CDbl(adVertex(1)), CDbl(adMinMax(3)))
        adMinMax(4) = dMin(CDbl(adVertex(2)), CDbl(adMinMax(4)))
        adMinMax(5) = dMax(CDbl(adVertex(2)), CDbl(adMinMax(5)))
    End If

End Sub

Function dMin(dFirst As Double, dSecond As Double) As Double
    If dFirst < dSecond Then
        dMin = dFirst
    Else
        dMin = dSecond
    End If
End Function

Function dMax(dFirst As Double, dSecond As Double) As Double
    If dFirst > dSecond Then
        dMax = dFirst
    Else
        dMax = dSecond
    End If
End Function


Gruß,
Zoltan

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

Gepetto
Mitglied
Diplomand auf Arbeitssuche


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

Beiträge: 32
Registriert: 04.03.2009

erstellt am: 23. Apr. 2009 09:48    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 Zoltan,

dein Code ist sehr interessant. Ich hab nur eine Anmerkung:
Was ist wenn beispielsweise wie beim Reichstag eine Kuppel ganz oben ist? Ich habe einen Test gemacht und ein verrundetes Bauteil in positiv z-Richtung als weitentfernteste Geometrie. Dann sind dort keine Vertex-Punkte die mit dem Makro erfasst werden können!

Daher kann man nicht die exakte Dimension in Z erhalten. Vielleicht fällt dir noch was anderes ein!

@Jens Hansen:
In deinem Buch ist die Möglichkeit erklärt wie man es bei einem Partbody realisieren kann. Ich wollte aber eine Lösung für ein Produkt. Kann man die Erläuterungen aus deinem Buch auch darauf umändern? Ich hab leider nicht soviel Ahnung, dass ich das auf Anhieb überblicke!

MfG Jan

[Diese Nachricht wurde von Gepetto am 23. Apr. 2009 editiert.]

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

Jens Hansen
Mitglied
CAx-Spezialist


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

Beiträge: 1056
Registriert: 05.08.2000

CATIA V5 R32
VB.Net
C#
WPF

erstellt am: 23. Apr. 2009 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 Gepetto 10 Unities + Antwort hilfreich

Hallo Jan,
du kannst den Umweg gehen und aus deinem Product ein einzelnes Part machen (Product to Part). Dieses Part würde ich dann für die Messung benutzen. Je nachdem wie die einzelnen Parts aufgebaut sind, können ja die jeweiligen Finalbodies als verknüpfte Kopie in das "Messpart" eingefügt werden. Dann hätte man sogar alles noch parametrisch.

SG

Jens Hansen

------------------
Inoffizielle CATIA-Hilfeseite
Private Seite
Xing
Kochbuch - CATIA V5 automatisieren

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

Gepetto
Mitglied
Diplomand auf Arbeitssuche


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

Beiträge: 32
Registriert: 04.03.2009

erstellt am: 23. Apr. 2009 13:11    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 Jens,

leider habe ich Produkte mit teilweise 100 Einzelteilen. Ich will nicht 2min auf mein Makro warten. Daher fällt "generate CATPart from Product" raus!

Hast Du evtl. eine andere Funktion, im Kopf mit der es schneller geht? Ich würde ja am liebsten eine Messung mit dem Produkt realisieren, aber nach ersten Recherchen geht das wahrscheinlich auch nicht!

Bitte postet weitere Lösungsansätze!

MfG Jan

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

CATIA V5R19

erstellt am: 23. Apr. 2009 13: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 Nur für Gepetto 10 Unities + Antwort hilfreich

Servus
Gibt es da nicht in der DMU-Umgebung (weiß nicht welcher Teil) ein Funktion dafür?
Ist nur die Frage, ob sich für die Messung diese Lizenz rechnet.

Gruß
Bernd

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

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

tomtom1972
Mitglied
dipl ing maschinenbau


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

Beiträge: 608
Registriert: 22.03.2005

NVidia Quadro K4000
Intel Xeon E5-1620, 64GB RAM
Windows10 64bit
R30 <= CATIA V5 > =R19

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


Bild_MTM.jpg

 
Hallo Gepetto,

folgendes funktioniert gut und sogar relativ schnell:
- du fängst an wie ursprünglich geplant und erzeugst dir über das TechnologicalObject "Inertia" die Hauptträgheitsachsen (GetPrincipalAxes)
- du erzeugst ein neues Part, dessen AbsolutesAchsenSystem kongruent zu dem o.g. Hauptträgheitsachsen ist
- du erzeugt eine hohlen Quader (d.h. eine Hüllkurve), der zu Beginn (in allen Richtungen) mittig zu dem Achsensytem ist. (Entwerder während der Laufzeit per Script oder du verbaust eine fertige Vorlage)
- die Abstände der 6 Seiten (L1 bis L6) des Quaders lassen sich über einen Parameter steuern
- der Quader ist zu Beginn hinreichend groß (also auf jeden Fall größer als die anderen Modelle
- in einer Schleife Clash-Unetrsuchungen ausführen (2 Selectionen gegeneinander, der Quader + der Rest)
- solange keine Kollision gefunden wird L1 bis L6 verringern
- beim ersten Clash stop
- CATIA gibt als Maß für die Größe der Kollison einen Abstand zurück (in mm) um den eins der beiden an der Kollision beteiligten Modelle verschoben werden muss, damit keine Kollision mehr auftritt.
- Um diesen Mass + ein bischen (0,1mm) L1 bis L6 vergrößern, sodass keine Kollision mehr auftritt
- dann L1 bis L6 einzeln auf die gleiche Weise nach und nach verringern
- das geht relativ schnell, d.h. die Kollisionsuntersuchungen die zu keinen Clash führen benötigen fast keine Zeit. Im Idealfall hast du 7 Clashes (manchmal ein paar mehr). Du kannst manuell testen, wie lange das bei deinen Modellen dauert
- Funktioniert auch im Cache-Modus (schneller)
- Aufgrund der Definition des Massenträgheitsmomentes an sich ist immer BBLz < BBLy < BBLX. Das zu wissen hilft bei der Veränderung der Masse L1 bis L6

Einens solltest du noch beachten:
bei der Berechung des Trägheitsmomentes (und damit der Ausrichtung des o.g. Achsenssytemes) werden alle Knoten im NoShow (Parts, Products etc) mitberechnet. D.h. es kann so was wie im Bild rauskommen (wenn das Volumen im NoShow sehr viel größer ist).
Die Boundig-Box ist dann zwar i.O. aber die Ausrichtung der Achsen entspricht nicht mehr den der Trägheitsmomente.

Gruß TomTom   

------------------
tomtom1972

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

Gepetto
Mitglied
Diplomand auf Arbeitssuche


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

Beiträge: 32
Registriert: 04.03.2009

erstellt am: 23. Apr. 2009 14: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

Der Ansatz gefällt mir! Hast Du evtl. schon so ein Makro programmiert und kannst mir hier den Quellcode zur Verfügung stellen?

Wir hatten bei uns im Haus auch schon überlegt über Clasdetection zu gehen, wobei wir damit rechnen dass es lange dauern kann... Aber das würde ich dann gerne ausprobieren!

MfG Jan

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

tomtom1972
Mitglied
dipl ing maschinenbau


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

Beiträge: 608
Registriert: 22.03.2005

NVidia Quadro K4000
Intel Xeon E5-1620, 64GB RAM
Windows10 64bit
R30 <= CATIA V5 > =R19

erstellt am: 23. Apr. 2009 16: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 Nur für Gepetto 10 Unities + Antwort hilfreich

Hallo Gepetto,

ich kann dir helfen wenn du irgendwo nicht weiter kommst und spezielle Fragen hast.
Aber ein fertiges Script werde ich hier nicht posten. Damit verdiene ich (unter anderem) meine Brötchen.
Ich kann dir aber versichern das es so funktioniert wie oben beschrieben.

Gruß TomTom

------------------
tomtom1972

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

.det
Mitglied


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

Beiträge: 2
Registriert: 21.04.2009

erstellt am: 23. Apr. 2009 23:06    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 Gepetto 10 Unities + Antwort hilfreich

Hallo zoltan,
danke für Deinen interessanten code. Dass Makros, die die SPAWorkbench bemühen nicht besonders schnell sind, mußte ich leider an anderer Stelle feststellen. Stattdessen dachte ich daran, von den gefundenen Vertixes Referenzen zu erstellen, um diese dann auszulesen. also ungefähr folgendermaßen:

      oSelection.Search ("Topology.CGMVertex,sel")

For i = 1 to oSelection.Count
reftype = oSelection.Item(i).Type

Select Case reftype
Case "NotWireBoundaryMonoDimFeatVertex" Or "ZeroDimFeatVertexOrWireBoundaryMonoDimFeatVertex"
refname = ExtractBRepName(oSelection.Item(i).Value.Name)
Set ref4 = prt.CreateReferenceFromName(refname)
Set hybShapePointExplicit = hybShapeFactory.AddNewPointDatum(ref4)
hybShapePointExplicit.GetCoordinates(coord)
        Case "TriDimFeatVertexOrBiDimFeatVertex"

End Select

        Next


      Private Function ExtractBRepName(s As String) As String
          Dim i, i2, n    As Integer
          Dim tmp        As String

          tmp = Replace(s, "Selection_", "")
          tmp = Replace(tmp, "_ResultOUT", "")

  i = InStrRev(tmp, ";")
  i = InStrRev(tmp, ";", i - 1)
          i = InStrRev(tmp, ";", i - 1)

          tmp = Left(tmp, i)
          tmp = tmp & "WithPermanentBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR14)"

          ExtractBRepName = tmp

      End Function

Im Array coord würden dann die Koordinaten gespeichert werden. Geometrieerzeugung möchte ich unbedingt vermeiden, da die Teile einem Freigabeprozess unterliegen. Ich hoffe, daß dieser Weg eine bessere Laufzeit aufweist, allerdings werden die Modelle durch diese Weise wohl auch als modifiziert gelten. Kann man diese Änderungen noch rückgängig machen ?

Gruß
.det

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

zoltan.bekesi
Mitglied



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

Beiträge: 321
Registriert: 22.10.2006

Job:
CATIA V5R19 / XP 32bit
MS Office 2003
Microstation V8 2004 Edition
DELL Precision M6300

erstellt am: 24. Apr. 2009 09:25    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 Gepetto 10 Unities + Antwort hilfreich

Hallo .det,

dein Code erzeugt auch Geometrie, obwohl es zu keinen Geometrical set hinzugefügt wird.
Soweit ich die bisherige Ideen und Möglichkeiten sehe, wirst du Geometrieerzeugung kaum umgehen können.
Mir persönlich gefällt die Idee von tomtom1972 am besten. Du kannst die Änderung bestehender Modelle evtl. umgehen, wenn die Modelle als Read-only geladen werden.
Zu dein Code: Die Spielerei mit den Brep-Texten brauchst du wahrscheinlich nicht. Reicht die oSelection.Item2(i).Reference nicht aus?
Beim Selection musst du Item2 und Count2 verwenden. Die anderen können problematisch funktionieren (auch laut Hilfe).

Gruß,
Zoltan

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

Gepetto
Mitglied
Diplomand auf Arbeitssuche


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

Beiträge: 32
Registriert: 04.03.2009

erstellt am: 30. Apr. 2009 11: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 Zusammen,
ich hab das Makro jetzt soweit fertig. Alles läuft und die Zeit ist auch noch okay!

Danke für eure Hilfe!

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

tomtom1972
Mitglied
dipl ing maschinenbau


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

Beiträge: 608
Registriert: 22.03.2005

NVidia Quadro K4000
Intel Xeon E5-1620, 64GB RAM
Windows10 64bit
R30 <= CATIA V5 > =R19

erstellt am: 04. Mai. 2009 07: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 Gepetto 10 Unities + Antwort hilfreich

Moin Gepetto,
da wir ja alle neugierig sind: nach welchem Konzept bis du nun letztendlich vorgegangen?
Gruß

------------------
tomtom1972

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

Gepetto
Mitglied
Diplomand auf Arbeitssuche


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

Beiträge: 32
Registriert: 04.03.2009

erstellt am: 04. Mai. 2009 08: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

Hallo TomTom

Ich bin ähnlich deiner Vorgabe vorgegangen.

- Als erstes habe ich den Schwerpunkt ermittelt. Die Trägheitsachsen habe ich nicht berücksichtigt, weil mir die Ausrichtung im im Space wichtig ist.
- Im Schwerpunkt habe ich dann einen Part erstellt, der Flächen bei +/- 10000mm besitzt. Jeweils Parallel zu den 3 Ebenen macht das einen großen Flächenwürfel.
- Dann habe ich erst alle Flächenabsaände verringert und immer mit Clash auf Kontakt geprüft. Dabei habe ich eine Schleife genommen um die Abstände solange zu  verringern bis ein Kontakt zustande kommt.
- Die Flächen wurden dann über die Überschneidung zurückgesetzt und dann das ganze für jede Fläche einzeln erneut durchgeführt.
- dann brauchte ich nur noch die Abstände messen und es war erledigt.

Die Zeit für eine Berechnung hängt dabei ganz von den unterschiedlichen geometrischen Abmaßen in x,y,z ab. Damit meine ich, dass ein Würfel schneller als ein Besen berechnet ist. Ich denke Du weisst was ich meine...

Danke nochmal für die guten Ratschläge

MfG Jan

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

Maetes
Mitglied
Student


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

Beiträge: 118
Registriert: 05.05.2009

XP 64Bit
CATIA V5R19SP4
MS Office 2003

erstellt am: 24. Apr. 2012 14:31    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 Gepetto 10 Unities + Antwort hilfreich

Hallo zusammen!
Sorry wenn ich das alte Thema wieder rauskrame, aber gibt es da schon Fortschritte?
Man kann die Werte BBLx, BBLy und BBLz recht gut auslesen unter:
ActiveDocument.Product.Parameters.Item(x)
Hab aber noch nicht rausgefunden, wie man die Werte den Teilen zuordnen kann.
Wenn man nur einen Wert hat, ist dies ja kein Problem, wenn man mehrere hat, dann schon :-/

[Diese Nachricht wurde von Maetes am 24. Apr. 2012 editiert.]

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

Sky Walker
Mitglied



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

Beiträge: 13
Registriert: 24.07.2012

erstellt am: 24. Jul. 2012 10: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 Gepetto 10 Unities + Antwort hilfreich

Hallo Maetes,
wenn Dein Vorschlag der ist, an dem ich mich auch gerade versuche, dann muss man zuerst über "Measure Inertia" und durch "Keep Measure" ein "InertiaVolume" im Strukturbaum erzeugen, oder?
Weißt Du zufällig, wie ich diesen Vorgang (also das Messen und die Messung beibehalten) in die Makro einbauen kann?

Vielen Dank im Voraus!
Doris

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

IGELReiser
Mitglied


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

Beiträge: 9
Registriert: 16.11.2012

V5R19

erstellt am: 16. Nov. 2012 13: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 Gepetto 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Sky Walker:
Hallo Maetes,
wenn Dein Vorschlag der ist, an dem ich mich auch gerade versuche, dann muss man zuerst über "Measure Inertia" und durch "Keep Measure" ein "InertiaVolume" im Strukturbaum erzeugen, oder?
Weißt Du zufällig, wie ich diesen Vorgang (also das Messen und die Messung beibehalten) in die Makro einbauen kann?

Vielen Dank im Voraus!
Doris


genau DAS würde mich auch sehr interessieren 

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

CATIA V5R19

erstellt am: 16. Nov. 2012 17: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 Gepetto 10 Unities + Antwort hilfreich

Servus
Hier findest du eine PowerCopy die dir eine solch ausgerichtete Box erstellt.
Oder bist du um Product unterwegs?

Gruß
Bernd

EDIT: Link korrigiert.

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

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

Sylas
Mitglied



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

Beiträge: 347
Registriert: 19.11.2012

Dell Precision T3500
Intel Xeon W3550 @ 3,07 GHz
12 GB RAM
CATIA V5 R28

erstellt am: 20. Jul. 2018 10: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 Nur für Gepetto 10 Unities + Antwort hilfreich

Hallo Zusammen

Ich habe solche Code auf Internet gefunden (Ich weiß nich ob ich kann das hier verlinken, deshalb copy+paste):

Code:

Sub CATMain()

On Error Resume Next

Dim oPartDoc As PartDocument
Dim oCurrentDoc As Document
Dim oPart As Product
Dim oInertia As Inertia
Dim InputObjectType(1) As Variant
Dim Status As String
Dim oSelection As Variant
Dim bCloseDoc As Boolean

Set oCurrentDoc = CATIA.ActiveDocument

'Exclude Drawings
If Right(oCurrentDoc.Name, 4) = "wing" Then
MsgBox "This function only operates on a part or product"
Exit Sub
End If


Set oSelection = oCurrentDoc.Selection

If Right(oCurrentDoc.Name, 4) = "Part" Then
Set oPart = oCurrentDoc.Product
oSelection.Add oPart
'GoTo RunBBOpenWindow
End If


If Right(oCurrentDoc.Name, 4) = "duct" Then
bCloseDoc = True
InputObjectType(0) = "Part"
InputObjectType(1) = "Product"
oSelection.Clear
Status = oSelection.SelectElement2(InputObjectType, "Pick a Part, Escape to Cancel", False)
If Status = "Cancel" Then Exit Sub
Set oPart = oSelection.Item2(1).LeafProduct.ReferenceProduct
If oPart.Name = oCurrentDoc.Product.Name Then
bCloseDoc = False
'GoTo RunBBOpenWindow
End If
CATIA.StartCommand "open in new window"
End If

RunBBNewWindow:

Set oPart = CATIA.ActiveDocument.Product
Dim oSelection2
Set oSelection2 = CATIA.ActiveDocument.Selection
oSelection2.Add oPart

RunBBOpenWindow:


CATIA.StartCommand "Measure Inertia"

Dim xDim As String
Dim yDim As String
Dim zDim As String

xDim = oPart.Parameters.GetItem("BBLx").Value
yDim = oPart.Parameters.GetItem("BBLy").Value
zDim = oPart.Parameters.GetItem("BBLz").Value

xDim = CStr(Round(xDim, 0))
yDim = CStr(Round(yDim, 0))
zDim = CStr(Round(zDim, 0))

Dim oMatParam As Parameter
Dim sMatParam As String
Set oMatParam = oPart.Parameters.GetItem("Definition")

sMatParam = oMatParam.ValueAsString

Dim oMassParam As Parameter
Dim sMassParam As String
Set oMassParam = oPart.UserRefProperties.GetItem("PDB_MASS")


sMassParam = oMassParam.ValueAsString
If sMassParam = "" Then sMassParam = "0"

If sMassParam = "0" Then
sMassParam = ""
If Right(CATIA.ActiveDocument.Name, 4) = "Part" Then
Set oInertia = oPart.GetTechnologicalObject("Inertia")

Select Case oInertia.Density

Case 0
sMassParam = ""

Case 1000
sMassParam = ""

Case Else
sMassParam = CStr(Round(oInertia.Mass, 1))

End Select

End If

End If


CATIA.StatusBar = "Start Creating Params"

Call SetParam(oPart, "LENGTH", xDim)
Call SetParam(oPart, "WIDTH", yDim)
Call SetParam(oPart, "THICKNESS/DIAMETER", zDim)
Call SetParam(oPart, "MATERIAL", sMatParam)
Call SetParam(oPart, "MASS", sMassParam)


MsgBox "Properties Applied:" & _
vbCrLf & "LENGTH: " & xDim & _
vbCrLf & "WIDTH: " & yDim & _
vbCrLf & "THICKNESS/DIAMETER: " & zDim & _
vbCrLf & "MATERIAL: " & sMatParam & _
vbCrLf & "MASS: " & sMassParam & _
vbCrLf & "Check Results Carefully!", vbOKOnly, oPart.Name

CATIA.DisplayFileAlerts = False
CATIA.StartCommand "Save"
'CATIA.ActiveDocument.Save
CATIA.DisplayFileAlerts = True


If bCloseDoc = True Then CATIA.ActiveDocument.Close

CATIA.StatusBar = "Macro Finished"

End Sub

Sub SetParam(ByRef oPart As Product, Name As String, Value As String)

'On Error GoTo CreateParam
Dim sParam As Parameter
Err.Clear

Set sParam = oPart.UserRefProperties.GetItem(Name)
sParam.ValuateFromString CStr(Value)

'GoTo Finish

CreateParam:
oPart.UserRefProperties.CreateString Name, CStr(Value)

Finish:


End Sub



Das gibt mir werte vom BoundingBox aber ich will jetzt die Werte nach custom AxisSystem (die vom Pad Skizze) gemasst habe. Wie kann ich das machen?

Gruß

Lukas

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

CATIA V5R19

erstellt am: 20. Jul. 2018 16: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 Nur für Gepetto 10 Unities + Antwort hilfreich

Servus

Vermutlich hilft dir dieses Makro nicht weiter, da IMHO du per StartCommand nicht die Trägheitsmessung anpassen kannst.
Also wird es komplexer: zB Geometrie erzeugen und die Überschneidung messen -> Geometrie anpassen und langsam annähern (wie weiter oben beschrieben). Oder von "extern" per WinAPI die Klicks der manuellen Messung nachstellen

Gruß
Bernd

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

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

roccat
Mitglied
Konstrukteur


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

Beiträge: 172
Registriert: 19.02.2010

WinXP/Win7
Office XP/2007
Catia V5 R16-R19, VB6.0, VBA, BASCOM-AVR
VB .Net 2010

erstellt am: 01. Aug. 2018 12: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 Nur für Gepetto 10 Unities + Antwort hilfreich

Hallo,

ich weiß nicht genau wozu du die BoundingBox brauchst. Aber für die Rohmaßbestimmung bin ich folgender Maßen vorgegangen.

Ich habe Planes in allen Richtungen (XYZ in Plus und in Minus) erzeugt die definitiv weiter auseinander liegen als das Bauteil groß ist, Dann habe ich von den Planes zum zu Messenden Body jeweils die minimum Distanz ermittelt und Damit die Größe in X,Y und Z berechnet. Funktioniert für unseren Anwendungsfall problemlos.

mfG
Mario

------------------
Wenn das die Lösung sein soll,
will ich mein Problem zurück !!

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

tomtom1972
Mitglied
dipl ing maschinenbau


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

Beiträge: 608
Registriert: 22.03.2005

NVidia Quadro K4000
Intel Xeon E5-1620, 64GB RAM
Windows10 64bit
R30 <= CATIA V5 > =R19

erstellt am: 01. Aug. 2018 13: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 Gepetto 10 Unities + Antwort hilfreich

Hallo,
das Problem ist dabei nur, das du diese Ebenen unabhängig von der Geometrie ausrichtetst (vermute ich jetzt mal) und bei komplexen Geometrien erhälst du dann nicht die "minimalen Abmaße" (eben die Bounding Box), sondern lediglichg die kleinsten Abmaße bezogen auf die Ausrichtung deiner Ebenen.
Gruß

------------------
tomtom1972

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

tomtom1972
Mitglied
dipl ing maschinenbau


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

Beiträge: 608
Registriert: 22.03.2005

NVidia Quadro K4000
Intel Xeon E5-1620, 64GB RAM
Windows10 64bit
R30 <= CATIA V5 > =R19

erstellt am: 01. Aug. 2018 13:21    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 Gepetto 10 Unities + Antwort hilfreich

roccat
Mitglied
Konstrukteur


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

Beiträge: 172
Registriert: 19.02.2010

WinXP/Win7
Office XP/2007
Catia V5 R16-R19, VB6.0, VBA, BASCOM-AVR
VB .Net 2010

erstellt am: 01. Aug. 2018 13:39    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 Gepetto 10 Unities + Antwort hilfreich

Hallo,

jein, wie gesagt für unseren Anwendungsfall.

Bei uns selektiert der Benutzer eine ebene Fläche am zumessenden Body (eine Aufschraubfläche gibt es bei uns immer) und eine zweite Fläche die 90° dazu gedreht ist ( also eine Anlagefläche (ist meistens vorhanden) oder eine Plane oder eine Achsensystemfläche (auf dem wird meistens konstruiert, also vorhanden)).

Für diese zwei klicks bekommt er HxLxB als Fertigmaß sowie HxLxB mit Aufmaß das Fertiggewicht und das Rohgewicht.

Ich wollte damit nur sagen dass es besser ist, die Minimum-Distanz von einer Plane zum Solid zu messen als aufwendig mit Clash in TryandFail-Verfahren zu einem Wert zukommen.

mfG
Mario

------------------
Wenn das die Lösung sein soll,
will ich mein Problem zurück !!

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

tomtom1972
Mitglied
dipl ing maschinenbau


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

Beiträge: 608
Registriert: 22.03.2005

NVidia Quadro K4000
Intel Xeon E5-1620, 64GB RAM
Windows10 64bit
R30 <= CATIA V5 > =R19

erstellt am: 10. Jun. 2021 07:49    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 Gepetto 10 Unities + Antwort hilfreich


BoundingBox.CATProduct.txt

 
Moin,

anbei eine Lösung für das BoundingBox Problem, welches im Forum ja in unterschiedlichen Posts diskutiert wurde, der Beitrag hier war imo bisher inhaltlich am besten.

Funktioniert für Volumengeometrien von einzelnen Parts oder kmpl. Strukturen, berücksichtigt wird nur die sichtbare Geometrie.

Es wird die in der Trägheitsmessung angezeigte Hüllgeometrie nachgebaut, d.h. Grundlage bildet die Annahme, das sich die BoundingBox immer nach der Trägheitsmatrix ausrichtet; mir ist bisher kein anderer Fall untergekommen.

Im .CATScript ist die Verwendung eines Startmodells notwendig (im Anhang, bitte die Endung .txt entfernen, ich konnte kein .CATProduct direkt hochladen), was bei mir im VisualBasic sonst mittels einer Resource erfolgt (im Code ausgedimmt).

Die Verknüpfung der Parameter (die Ausgelesen werden) zur Inertia-Messung dient lediglich der Beschleunigung des Scriptlaufs, das direkte Abgreifen der Messung selber ist elendig langsam.

Gruß TomTom

Code:
Language="VBSCRIPT"
'--------- 2021, tomtom1972

Sub CATMain()

Catia.DisplayFileAlerts = False
sTemp = Catia.SystemService.Environ("tmp")
Set oFileSystem = CreateObject("Scripting.FileSystemObject")

sNow = Timer
sStrNow = "tmp" & Replace(sNow, ",", "")

sFilePath = sTemp & "\" & sStrNow & ".CATProduct"

If Catia.Windows.Count > 0 Then
  If TypeName(Catia.ActiveWindow.Parent) = "PartDocument" Then
      Set oRoot = Catia.ActiveDocument
      Set oToAdd = oRoot.Part
  ElseIf TypeName(Catia.ActiveWindow.Parent) = "ProductDocument" Then
      Set oRoot = Catia.ActiveDocument
      Set oToAdd = oRoot.Product
  Else
      MsgBox "Root is not a Part- or Product Document    " & vbLf & "Script aborted.", 48, "Error"
      Exit Sub
  End If
Else
  MsgBox "No Document is opened    " & vbLf & "Script aborted.", 48, "Error"
  Exit Sub
End If

For i = 1 To Catia.Windows.Count
  If Catia.Windows.Item(i).Parent Is oRoot Then
      Set oRootWindow = Catia.Windows.Item(i)
      Exit For
  End If
Next

If oRootWindow.Parent.FullName <> oRootWindow.Parent.Name Then
  If oFileSystem.FileExists(oRootWindow.Parent.FullName) Then
  Else
      MsgBox "Root Documents File does not exist    " & vbLf & "Script aborted.", 48, "Error"
      Exit Sub
  End If
Else
  MsgBox "Root Document is not saved    " & vbLf & "Script aborted.", 48, "Error"
  Exit Sub
End If

''----for CATScript with startmodell
sStartMPath = CATIA.FileSelectionBox("Select the BoundingBox.CATProduct", "BoundingBox.CATProduct", CatFileSelectionModeOpen)
If oFileSystem.FileExists(sStartMPath) Then
  oFileSystem.CopyFile sStartMPath, sFilePath
Else
  MsgBox "BoundingBox.CATProduct could not be found    " & vbLf & "Script aborted.", 48, "Error"
  Exit Sub
End If

''----in VB6 with resource
'Dim b() As Byte
'b = LoadResData(101, "CUSTOM")
'  Open sTemp & "\" & sStrNow & ".CATProduct" For Binary As #1
'  Put #1, , b()
'Close #1

Set oBoundingBoxProduct = Catia.Documents.Open(sFilePath)
oBoundingBoxProduct.Product.PartNumber = sStrNow

Dim aInsert(0)
aInsert(0) = oRootWindow.Parent.FullName

Set oProds = oBoundingBoxProduct.Product.Products
oProds.AddComponentsFromFiles aInsert, "All"

oBoundingBoxProduct.Product.Update

Set oParams = oBoundingBoxProduct.Product.Parameters
Set oRootParamSet = oParams.RootParameterSet
Set oParameterSet = oRootParamSet.ParameterSets
Set oInertiaParamSet = oParameterSet.Item("Parameters_Inertia")

Dim aParam(14)
Set aParam(0) = oInertiaParamSet.DirectParameters.Item("A1x_param")
Set aParam(1) = oInertiaParamSet.DirectParameters.Item("A1y_param")
Set aParam(2) = oInertiaParamSet.DirectParameters.Item("A1z_param")
Set aParam(3) = oInertiaParamSet.DirectParameters.Item("A2x_param")
Set aParam(4) = oInertiaParamSet.DirectParameters.Item("A2y_param")
Set aParam(5) = oInertiaParamSet.DirectParameters.Item("A2z_param")
Set aParam(6) = oInertiaParamSet.DirectParameters.Item("A3x_param")
Set aParam(7) = oInertiaParamSet.DirectParameters.Item("A3y_param")
Set aParam(8) = oInertiaParamSet.DirectParameters.Item("A3z_param")
Set aParam(9) = oInertiaParamSet.DirectParameters.Item("BBOx_param")
Set aParam(10) = oInertiaParamSet.DirectParameters.Item("BBOy_param")
Set aParam(11) = oInertiaParamSet.DirectParameters.Item("BBOz_param")
Set aParam(12) = oInertiaParamSet.DirectParameters.Item("BBLx_param")
Set aParam(13) = oInertiaParamSet.DirectParameters.Item("BBLy_param")
Set aParam(14) = oInertiaParamSet.DirectParameters.Item("BBLz_param")

iCnt = oProds.Count
If iCnt <> 1 Then
  MsgBox "Error    " & vbLf & "Script aborted.", 48, "Error"
  Exit Sub
End If

Set oBBPart = oProds.AddNewComponent("Part", "BoundingBox_" & sStrNow)

If oProds.Count <> 2 Then
  MsgBox "Error    " & vbLf & "Script aborted.", 48, "Error"
  Exit Sub
End If

On Error Resume Next

Set oSel = Catia.ActiveDocument.Selection
Set oPartDoc = oBBPart.ReferenceProduct.Parent
Set oPart = oPartDoc.Part
Set oHBS = oPart.HybridBodies

If Err.Number <> 0 Then
  MsgBox "Error    " & vbLf & "Script aborted.", 48, "Error"
  Exit Sub
End If

Set oHB = oHBS.Add()
oHB.Name = "BoundingBox.GS"
Set oHS = oHB.HybridShapes
Set oHSF = oPart.HybridShapeFactory
Set oAxSys = oPart.AxisSystems
Set oAS1 = oAxSys.Add()

oAS1.OriginType = catAxisSystemOriginByCoordinates

Dim aAS1(2)
aAS1(0) = aParam(9).Value
aAS1(1) = aParam(10).Value
aAS1(2) = aParam(11).Value

oAS1.PutOrigin aAS1

Dim aAxisSystX(2)
Dim aAxisSystY(2)
Dim aAxisSystZ(2)

aAxisSystX(0) = aParam(0).Value
aAxisSystX(1) = aParam(1).Value
aAxisSystX(2) = aParam(2).Value
aAxisSystY(0) = aParam(3).Value
aAxisSystY(1) = aParam(4).Value
aAxisSystY(2) = aParam(5).Value
aAxisSystZ(0) = aParam(6).Value
aAxisSystZ(1) = aParam(7).Value
aAxisSystZ(2) = aParam(8).Value

oAS1.XAxisType = catAxisSystemAxisByCoordinates
oAS1.YAxisType = catAxisSystemAxisByCoordinates
oAS1.ZAxisType = catAxisSystemAxisByCoordinates
 
oAS1.PutZAxis aAxisSystZ
oAS1.PutYAxis aAxisSystY
oAS1.PutXAxis aAxisSystX

oPart.UpdateObject oAS1

oAS1.Name = "BoundingBoxAS"
oAS1.IsCurrent = True

Set oRefX = oPart.CreateReferenceFromBRepName("FEdge:(Edge:(Face:(Brp:(BoundingBoxAS;1);None:();Cf11:());Face:(Brp:(BoundingBoxAS;3);None:();Cf11:());None:(Limits1:();Limits2:());Cf11:());WithPermanentBody;WithoutBuildError;WithInitialFeatureSupport;MFBRepVersion_CXR15)", oAS1)

Set oHSPCoor = oPart.CreateReferenceFromBRepName("FVertex:(Vertex:(Neighbours:(Face:(Brp:(BoundingBoxAS;2);None:();Cf11:());Face:(Brp:(BoundingBoxAS;3);None:();Cf11:());Face:(Brp:(BoundingBoxAS;1);None:();Cf11:()));Cf11:());WithPermanentBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR15)", oAS1)
Set oHSDirX = oHSF.AddNewDirection(oRefX)
Set oHSLPDir = oHSF.AddNewLinePtDir(oHSPCoor, oHSDirX, 0, aParam(12).Value, False)
oHSLPDir.Name = "BoundingBoxXDir"

Set oRefY = oPart.CreateReferenceFromBRepName("FEdge:(Edge:(Face:(Brp:(BoundingBoxAS;2);None:();Cf11:());Face:(Brp:(BoundingBoxAS;1);None:();Cf11:());None:(Limits1:();Limits2:());Cf11:());WithPermanentBody;WithoutBuildError;WithInitialFeatureSupport;MFBRepVersion_CXR15)", oAS1)
Set oHSDirY = oHSF.AddNewDirection(oRefY)

Set oHSExtr1 = oHSF.AddNewExtrude(oHSLPDir, aParam(13).Value, 0, oHSDirY)
oHSExtr1.Name = "BoundingBoxXYSurf"

Set oRefZ = oPart.CreateReferenceFromBRepName("FEdge:(Edge:(Face:(Brp:(BoundingBoxAS;3);None:();Cf11:());Face:(Brp:(BoundingBoxAS;2);None:();Cf11:());None:(Limits1:();Limits2:());Cf11:());WithPermanentBody;WithoutBuildError;WithInitialFeatureSupport;MFBRepVersion_CXR15)", oAS1)
Set oHSDirZ = oHSF.AddNewDirection(oRefZ)

Set oHSExtr2 = oHSF.AddNewExtrude(oHSExtr1, aParam(14).Value, 0, oHSDirZ)
oHB.AppendHybridShape oHSExtr2
oHSExtr2.Name = "BoundingBox " & Round(aParam(12).Value, 3) & "mm x " & Round(aParam(13).Value, 3) & "mm x " & Round(aParam(14).Value, 3) & "mm"
oPart.Update

''---- optinal with isolated surface
'Set oDatumRef = oPart.CreateReferenceFromObject(oHSExtr2)
'aIsolatedSurface = oHSF.AddNewDatums(oHSExtr2)
'If UBound(aIsolatedSurface) = 0 Then
'  oHB.AppendHybridShape aIsolatedSurface(0)
'  aIsolatedSurface(0).Name = "BoundingBox " & Round(aParam(12).Value, 3) & "mm x " & Round(aParam(13).Value, 3) & "mm x " & Round(aParam(14).Value, 3) & "mm"
'  oPart.InWorkObject = aIsolatedSurface(0)
'Else
'  For s = 0 To UBound(aIsolatedSurface)
'      oHB.AppendHybridShape aIsolatedSurface(s)
'      aIsolatedSurface(s).Name = "BoundingBox." & s + 1
'      oPart.InWorkObject = aIsolatedSurface(s)
'  Next
'End If
'oHSF.DeleteObjectForDatum oDatumRef
'oPart.Update

Set oVis = oSel.VisProperties
oSel.Clear
oSel.Add (oHB)
oVis.SetRealColor 204, 255, 102, 1
oVis.SetRealOpacity 0, 1
oSel.Clear

If Err.Number <> 0 Then
  oSel.Clear
  oSel.Add (oHB)
  oSel.Add (oAS1)
  oSel.Delete
  oSel.Clear
  oPart.Update
  oSel.Search "Name=*Inertia,in"
  oSel.Delete
  oSel.Clear
  oBoundingBoxProduct.Close
  MsgBox "An Error occured during script running    " & vbLf & "Script aborted.", 48, "Error"
  Exit Sub
Else
  oPartDoc.SaveAs (sTemp & "\" & oPart.Name)
End If

oSel.Search "Name=*Inertia,in"
oSel.Delete
oSel.Clear

End Sub 


------------------
tomtom1972

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

JoFa97
Mitglied
Student


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

Beiträge: 17
Registriert: 24.10.2023

CATIA V5

erstellt am: 27. Mrz. 2024 14: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 Gepetto 10 Unities + Antwort hilfreich


tom1.PNG


tom2.PNG

 
Hi zusammen,
ich probiere grade dieses Skript von tom aus (letzte Antwort auf den Beitrag), und kriege die Fehlermeldungen, die ich in Screenshots angehangen habe (der zweite ergibt sich, wenn ich beim ersten auf "ok" drücke).
Ich weiß, Ferndiagnosen sind immer schwer. Ich dachte ich probiere es einfach mal, vllt. sind ist ja auch schon einmal jemand auf diesen Fehler gestoßen. Bei anderen Bauteilen kriege ich den selben Fehler. Das Starting-Product habe ich ebenfalls ihrem Beitrag entnommen.

Kann mir da jmd weiterhelfen?
Danke und Liebe Grüße
Joshua

------------------
Joshua

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

CATIA V5R19

erstellt am: 27. Mrz. 2024 14:48    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 Gepetto 10 Unities + Antwort hilfreich

Servus

Kommentiere mal testweise das On Error Resume next aus, und schau wo der Fehler auftritt.
Bzw hat das Einfügen deines Parts im die "Messbaugruppe" geklappt?
Kannst du einschränken wann der Fehler im Code etwa auftritt?

Gruß
Bernd

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

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

tomtom1972
Mitglied
dipl ing maschinenbau


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

Beiträge: 608
Registriert: 22.03.2005

NVidia Quadro K4000
Intel Xeon E5-1620, 64GB RAM
Windows10 64bit
R30 <= CATIA V5 > =R19

erstellt am: 04. Apr. 2024 12:43    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 Gepetto 10 Unities + Antwort hilfreich

Moin,

ohne weitere Infos und nur auf Grundlage deiner Screenshots ist ein Eingrenzen des Fehlers recht schwierig:
- ich habe das nie in der deutschen Sprachumgebung getestet, nur in der engl.
- du hast Freizeichen in der Namensgebung verwendet, das hat bei uns in der Vergangenheit zu Problemen geführt. Die BRep-Strings sind dann anders aufgebaut.
- Ich vermute dein CATPart ist irgendwo abgespeichert und nicht neu erzeugt und nur in dem Fenster geöffnet?

Wie Bernd schon geschrieben hat: Kommentiere das On Error Resume Next aus und teile uns mal mit, in welcher Zeile des Scripts der Fehler auftritt.

Gruß tomtom

------------------
tomtom1972

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

JoFa97
Mitglied
Student


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

Beiträge: 17
Registriert: 24.10.2023

CATIA V5

erstellt am: 09. Apr. 2024 09:48    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 Gepetto 10 Unities + Antwort hilfreich

Hallo ihr beiden, erstmal danke für eure Antwort,
ich probiere grade eine andere Methode über Powercopy. Sollte das nicht gehen befasse ich mich wieder mit dem Skript.

------------------
Joshua

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

CATIA V5R19

erstellt am: 09. Apr. 2024 15: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 Nur für Gepetto 10 Unities + Antwort hilfreich

Servus Joschua

Zusätzlich zu der PowerCopy gibt es hier im Forum noch ein Makro das den Ablauf der PowerCopy direkt als Geometrie aufbaut.

Gruß
Bernd

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

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