Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Trimmen von Verbinden von Flächen automatisieren

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:  Trimmen von Verbinden von Flächen automatisieren (2459 mal gelesen)
McLoud1
Mitglied



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

Beiträge: 11
Registriert: 04.01.2013

SP 3, RN 19

erstellt am: 04. Jan. 2013 20:42    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,

Mein Problem ist in etwa wie folgt zu beschreiben :
Ich besitzte eine Grundfläche auf die ich einzelne Kurven projeziere. Diese werden anschließend alle mit einem festgelegten Offset extruiert.
Das Ziel soll am Ende sein alle Extrusionsflächen mit der Grundfläche verbunden zu haben. Und zwar ohne, dass beim Verbinden die Konnektivitätsprüfung deaktiviert ist...

Das einzig mögliche Vorgehen hierzu ist nach meinem bisherigen Wissen, dass man die Flächen jeweils mit der Grundfläche trimmt und anschließend die getrimmte Fläche wieder mit der Grundfläche verbindet, sodass diese mit der Extrusionsfläche eine gemeinsame Fläche bildet.
Problematisch wird es jedoch, wenn mehr als eine zu verbindende Extrusionsfläche existiert. Dann muss in einem Art "Schichtverfahren", bei dem zuerst einzelne Schichten von Extrusionsflächen miteinander verbunden werden, durch die Extrusionsflächenstruktur nacheinander getrimmt und anschließend mit der ständig zu erweiternden Grundfläche verbunden werden, sodass kein Verbindungsfehler entsteht. Dies ist sehr aufwendig und ich suche nun nach einer Möglichkeit dies zu automatisieren.

MfG,
McLoud

[Diese Nachricht wurde von McLoud1 am 30. Jan. 2013 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. Jan. 2013 21:01    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 McLoud1 10 Unities + Antwort hilfreich

Servus
Willkommen im Forum. Bitte Systeminfo ausfüllen.
Kannst du ggf ein kleines CATPart dazu hochladen? Ich kann es mir noch nicht so ganz vorstellen (vielleicht gibt es auch eine einfachere Methode)

Gruß
Bernd

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

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

McLoud1
Mitglied



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

Beiträge: 11
Registriert: 04.01.2013

SP 3, RN 19

erstellt am: 05. Jan. 2013 13: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

war hier nur spam..

[Diese Nachricht wurde von McLoud1 am 30. Jan. 2013 editiert.]

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: 05. Jan. 2013 13:46    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 McLoud1 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von McLoud1:
Das einzig mögliche Vorgehen hierzu ist nach meinem bisherigen Wissen, dass man die Flächen jeweils mit der Grundfläche trimmt und anschließend die getrimmte Fläche wieder mit der Grundfläche verbindet, sodass diese mit der Extrusionsfläche eine gemeinsame Fläche bildet.
Problematisch wird es jedoch, wenn mehr als eine zu verbindende Extrusionsfläche existiert. Dann muss in einem Art "Schichtverfahren", bei dem zuerst einzelne Schichten von Extrusionsflächen miteinander verbunden werden, durch die Extrusionsflächenstruktur nacheinander getrimmt und anschließend mit der ständig zu erweiternden Grundfläche verbunden werden, sodass kein Verbindungsfehler entsteht. Dies ist sehr aufwendig und ich suche nun nach einer Möglichkeit dies zu automatisieren.

der so erstellter Flächenverbund hat ein Dicke von NULL.
Ist es nicht sinnvoller ein Solid zu erzeugen`die Rippen werden ja keine Dicke von Null haben, oder?

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

McLoud1
Mitglied



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

Beiträge: 11
Registriert: 04.01.2013

SP 3, RN 19

erstellt am: 08. Jan. 2013 10:05    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,

Also ich benötige defintiv einen Flächenverbund, um diesen später in eine FEM-Simulationen weiterzugeben.

[Diese Nachricht wurde von McLoud1 am 30. Jan. 2013 editiert.]

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

tsolina
Mitglied



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

Beiträge: 15
Registriert: 10.10.2012

Compaq cx50 :D

erstellt am: 16. Jan. 2013 23: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 McLoud1 10 Unities + Antwort hilfreich

Hallo, ich werde dir was anderes vorschlagen, und das ist anstatt trim, split zu nutzen.
Warum? Weil beim split du kannst Element zu keep/delete definieren, und wie ich es sehen du hast die punkten auf welchem kannst du zugreiffen, oder du kannst einfach temporare extreme auf flechen erzeugen und damit Keep/Delete element zu definieren.

------------------
Catia v5 macros

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

McLoud1
Mitglied



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

Beiträge: 11
Registriert: 04.01.2013

SP 3, RN 19

erstellt am: 17. Jan. 2013 12:05    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,
also ich konnte mit Split noch keine zwei Flächen miteinander verbinden. Das einzige was mir gelungen ist, ist die Verschneidung zu erzeugen.
Gruß

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

tsolina
Mitglied



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

Beiträge: 15
Registriert: 10.10.2012

Compaq cx50 :D

erstellt am: 17. Jan. 2013 13: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 Nur für McLoud1 10 Unities + Antwort hilfreich

das geht mit join 

hier ist vba beispiel

' - a sub to join all elements from geometrical set -
Sub Assembly(gSet As HybridBody)
    Dim i As Integer
    Dim hybridShapeFactory1 As HybridShapeFactory
    Dim oAssy As HybridShapeAssemble
       
    Set hybridShapeFactory1 = CATIA.ActiveDocument.Part.HybridShapeFactory
   
' - create join with first two items from set -
    Set oAssy = hybridShapeFactory1.AddNewJoin(gSet.HybridShapes.Item(1), gSet.HybridShapes.Item(2))
       
' - if you have more than 2 elements in set -
    If gSet.HybridShapes.Count > 2 Then
        For i = 3 To gSet.HybridShapes.Count
            oAssy.AddElement gSet.HybridShapes.Item(i)
        Next
    End If

' - additional options -
    oAssy.SetConnex 1
    oAssy.SetManifold 0
    oAssy.SetSimplify 0
    oAssy.SetSuppressMode 0
    oAssy.SetDeviation 0.001
    oAssy.SetAngularToleranceMode 0
    oAssy.SetAngularTolerance 0.5
    oAssy.SetFederationPropagation 0
   
' - populate join in tree -
    gSet.AppendHybridShape oAssy
   
' - dont forget to update object -
    CATIA.ActiveDocument.Part.UpdateObject oAssy
End Sub

------------------
Catia v5 macros

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

McLoud1
Mitglied



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

Beiträge: 11
Registriert: 04.01.2013

SP 3, RN 19

erstellt am: 17. Jan. 2013 16:38    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

Hi,
ja also wenn man die Konnektvität deaktiviert, dann geht das so schön. Aber diese soll nun leider aktiviert bleiben. Sonst wäre ich schon lang fertig gewesen         
Naja dann sind wir wieder bei dem zuvor beschrieben Problem mit dem Auswählen.
Gruß!

[Diese Nachricht wurde von McLoud1 am 30. Jan. 2013 editiert.]

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

MarkS.
Mitglied
NC-Programmierer/Anwendungsentwickler


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

Beiträge: 30
Registriert: 23.05.2012

Windows 7 SP1 64Bit
AMD Opteron 6134
ATI FirePro V8800
32 GB
Catia V5 R19/R20/R21
VB.NET 2010
Delphi 7

erstellt am: 17. Jan. 2013 18: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 McLoud1 10 Unities + Antwort hilfreich

Hallo McLoud1,

ist nicht gerade einfach durch deine Struktur durchzusteigen. Wenn ich das richtig verstehe, soll zwischen Flächen eine Art Wabenstruktur aufgebaut werden?

Würde es da nicht ausreichen...

-einen Sketch mit der Wabenstruktur aufzubauen,
-diesen zu extrudieren,
-zu trimmen,
-und im Join zur der Grundfläche hinzuzufügen


Gruß
  Mark

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

McLoud1
Mitglied



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

Beiträge: 11
Registriert: 04.01.2013

SP 3, RN 19

erstellt am: 24. Jan. 2013 09: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

Also ich fass es nochmal ganz schön zusammen:

Man hat eine Rippenstruktur aus vielen unverbundenen Einzelflächen. Diese soll in viele Verbindungen aufgeteilt werden, sodass am Ende jede Einzelfläche in einer Verbindung enthalten ist. Eine Verbindung verläuft von einer Einzelfläche am Rand der Außenfläche zu einer anderen Einzelfläche am Rand der Außenfläche.

Vorgehen:
- es müssen über eine distance-Ermittlung zum Rand zwei Einzelflächen ermittelt werden, die zur Randkurve der Außenfläche den miminumDistance=0 haben
- diese zwei Einzelflächen über for-Schleifen selektieren und diese einem Join hinzufügen. Desweiteren über eine weitere for-Schleife Einzelflächen zu diesen beiden hinzufügen, sodass sich insgesamt eine Verbindung mit SetConnex=1 ergibt.
- Für den Anfang reicht es von einer Außenfläche alle möglichen Verbindungen zu allen anderen Außenflächen zu ermitteln. Man kann sich ja vorstellen wie schnell hier der Rechenaufwand explodiert... Aber immer noch besser als alles zu trimmen

Gruß!

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

McLoud1
Mitglied



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

Beiträge: 11
Registriert: 04.01.2013

SP 3, RN 19

erstellt am: 28. Jan. 2013 18: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,
also ich habe die Aufgabe nach einigem Rumprobieren mit meinen bescheidenen Programmierkenntnissen dann doch geschafft.

Beste Grüße


Sub CATMain(gSet As HybridBody, Ablageset As HybridBody)
Set activedoc = CATIA.ActiveDocument
Set part1 = activedoc.Part
Set TheSPAWorkbench = CATIA.ActiveDocument.GetWorkbench("SPAWorkbench")

    Dim i As Integer
    Dim j As Integer
    Dim k As Integer
    Dim hybridShapeFactory1 As HybridShapeFactory
    Dim oAssy As HybridShapeAssemble
    Set hybridShapeFactory1 = CATIA.ActiveDocument.Part.HybridShapeFactory
   
MsgBox "Wählen Sie bitte den Rand aus", vbOKOnly

Set selection1 = activedoc.Selection
Dim InputObjectType(4)
InputObjectType(0) = "HybridShapeExtrude"
InputObjectType(1) = "HybridShapeSplit"
InputObjectType(2) = "HybridShapeAssemble"
InputObjectType(3) = "HybridShapeConnect"
InputObjectType(4) = "HybridShapeExtract"

Status = selection1.SelectElement2(InputObjectType, "Rand auswählen", False)
If (Status = "Cancel") Then
  MsgBox "Makro abgebrochen", 16
  Exit Sub
Else
Set object1 = selection1.Item(1).Value
End If

For i = 1 To gSet.HybridShapes.Count
Set object2 = gSet.HybridShapes.Item(i)

Dim reference1 As Reference
Set reference1 = part1.CreateReferenceFromObject(object1)


Dim reference2 As Reference
Set reference2 = part1.CreateReferenceFromObject(object2)


Dim distance1
Set Measurable1 = TheSPAWorkbench.GetMeasurable(reference1)
distance1 = Measurable1.GetMinimumDistance(reference2)
'MsgBox distance1
If distance1 < 0.0001 Then

For j = i + 1 To gSet.HybridShapes.Count
Set object3 = gSet.HybridShapes.Item(j)
Dim reference3 As Reference
Set reference3 = part1.CreateReferenceFromObject(object3)
Dim distance2
distance2 = Measurable1.GetMinimumDistance(reference3)
'MsgBox distance2

If distance2 < 0.0001 Then
For k = 1 To gSet.HybridShapes.Count
Set object4 = gSet.HybridShapes.Item(k)
Dim reference4 As Reference
Set reference4 = part1.CreateReferenceFromObject(object4)
Dim distance3
Dim distance4
Set Measurable2 = TheSPAWorkbench.GetMeasurable(reference4)
distance3 = Measurable2.GetMinimumDistance(reference2)
distance4 = Measurable2.GetMinimumDistance(reference3)

   If (distance3 < 0.0001 And distance4 < 0.0001) Then
   Set oAssy = hybridShapeFactory1.AddNewJoin(object2, object3)
   oAssy.AddElement object4
  

  
   ' - additional options -
    oAssy.SetConnex 1
    oAssy.SetManifold 0
    oAssy.SetSimplify 0
    oAssy.SetSuppressMode 0
    oAssy.SetDeviation 0.001
    oAssy.SetAngularToleranceMode 0
    oAssy.SetAngularTolerance 0.5
    oAssy.SetFederationPropagation 0
   
   
   
On Error Resume Next
' - populate join in tree -


    'If oAssy.SetConnex = 1 Then
    Ablageset.AppendHybridShape oAssy
    'End If
   
   
   
' - dont forget to update object -
    CATIA.ActiveDocument.Part.UpdateObject oAssy
   
'End If
End If
Next
End If
Next
End If
Next
End Sub

[Diese Nachricht wurde von McLoud1 am 30. Jan. 2013 editiert.]

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