Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Edge Fillet Erzeugung

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:  Edge Fillet Erzeugung (1492 mal gelesen)
AndiKrue
Mitglied
Berater


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

Beiträge: 72
Registriert: 04.12.2008

Windows XP Prof x64 Edition
Intel Xeon W3520 @ 2.67 GHz
8 GB RAM,
Nvidia Quadro FX 1800
CATIA V5R19

erstellt am: 05. Jun. 2009 10:29    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


EdgeFilletErzeugung.txt

 
Hallo,

also ich versuche zwei miteinander vertrimmte Flächen mit einem Edge Fillet zu versehen, dazu habe ich auch eine Function geschrieben, die mit den benötigten Inputs den Fillet erzeugen soll. Der Fillet wird auch erzeugt, aber die enthaltene Geometrie ist irgendwie fehlerhaft. Ich habe mal die Fehlermeldung und das Modell angehängt (txt in zip umbenennen), der Code dazu ist unten.

Main zur Initialisierung der Function

Code:
Sub CATMain()

Dim oPartInWork As Part
Set oPartInWork = CATIA.ActiveDocument.Part

Dim oTargetGeoset As HybridBody
Set oTargetGeoset = CATIA.ActiveDocument.Part.HybridBodies.Item("EdgeFilletErzeugung")

Dim oFirstSurface As HybridShape
Set oFirstSurface = oTargetGeoset.HybridShapes.Item("TrimmedSurface")

'Dim oFirstEdge As HybridShape
'Set oFirstEdge = oTargetGeoset.HybridShapes.Item("ReferenceEdge")

Dim iRadius As Integer
iRadius = 5

Dim oEdgeFillet As HybridShape
Set oEdgeFillet = CATIAFunctions.oEdgeFillet(oPartInWork, oTargetGeoset, oFirstSurface, iRadius)

End Sub


Function

Code:
Function oEdgeFillet(oPartInWork As Part, oTargetGeoset As HybridBody, oFirstSurface As Object, iRadius As Integer) As Object

Dim oShapeFactoryEdgeFillet As Factory
Set oShapeFactoryEdgeFillet = oPartInWork.ShapeFactory

Dim TmpSelection
Set TmpSelection = oPartInWork.Parent.Selection

Dim FirstReferenceObjectName

TmpSelection.Clear

TmpSelection.Add oFirstSurface

TmpSelection.Search ("Topology.Edge,sel")

CountEdges = TmpSelection.Count

Dim ShapeEdges(999)

For U = 1 To CountEdges
   
    Set ShapeEdges(U) = TmpSelection.Item(U).Value

Next

Dim FirstReferenceObject As Object

Dim oFirstSurfaceRef As Reference
Set oFirstSurfaceRef = oPartInWork.CreateReferenceFromObject(oFirstSurface)

iii = 1

Do Until Ready = True Or iii = CountEdges

Set FirstReferenceObject = ShapeEdges(iii)

FirstReferenceObjectName = ""

FirstReferenceObjectName = FirstReferenceObject.Name

FirstReferenceObjectName = Replace(FirstReferenceObjectName, "Selection_", "")

FirstReferenceObjectName = StrReverse(FirstReferenceObjectName)

For i = 1 To 3 Step 1

    ii = InStr(FirstReferenceObjectName, ";")
    FirstReferenceObjectName = Right(FirstReferenceObjectName, Len(FirstReferenceObjectName) - ii)

Next

FirstReferenceObjectName = StrReverse(FirstReferenceObjectName)

Set oFirstReference = oPartInWork.CreateReferenceFromBRepName(FirstReferenceObjectName & ";WithTemporaryBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR15", oFirstSurface)

Set oEdgeFillet = oShapeFactoryEdgeFillet.AddNewSurfaceEdgeFilletWithConstantRadius(Nothing, catTangencyFilletEdgePropagation, iRadius)

oEdgeFillet.AddObjectToFillet oFirstReference

oEdgeFillet.EdgePropagation = catTangencyFilletEdgePropagation

oEdgeFillet.FilletBoundaryRelimitation = catConnectFilletBoundaryRelimitation

oEdgeFillet.FilletTrimSupport = catTrimFilletSupport


On Error Resume Next

oPartInWork.UpdateObject oEdgeFillet

If Err <> 0 Then

    'TmpSelection.Clear
    'TmpSelection.Add oEdgeFillet
    'TmpSelection.Delete
    Ready = False
    Err.Clear

Else

    Ready = True
       
End If

iii = iii + 1

Loop

End Function


[Diese Nachricht wurde von AndiKrue am 05. Jun. 2009 editiert.]

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

AndiKrue
Mitglied
Berater


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

Beiträge: 72
Registriert: 04.12.2008

Windows XP Prof x64 Edition
Intel Xeon W3520 @ 2.67 GHz
8 GB RAM,
Nvidia Quadro FX 1800
CATIA V5R19

erstellt am: 05. Jun. 2009 10: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

AndiKrue
Mitglied
Berater


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

Beiträge: 72
Registriert: 04.12.2008

Windows XP Prof x64 Edition
Intel Xeon W3520 @ 2.67 GHz
8 GB RAM,
Nvidia Quadro FX 1800
CATIA V5R19

erstellt am: 05. Jun. 2009 14:03    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Ok habe die Lösung gefunden dank einem Thread hier im Forum, es geht mit

Set oEdgeFillet = oShapeFactoryEdgeFillet.AddNewSurfaceEdgeFilletWithConstantRadius(oFirstReference, catTangencyFilletEdgePropagation, iRadius)

oEdgeFillet.AddObjectToFillet oFirstReference fällt dann weg, dann läuft es

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