Autor
|
Thema: Boundary-Referenz (1091 / mal gelesen)
|
White-Fox Mitglied E-Techniker
Beiträge: 24 Registriert: 23.01.2017
|
erstellt am: 28. Jan. 2017 21:14 <-- editieren / zitieren --> Unities abgeben:
Hallo Gibt es irgendein sinnigses Vorgehen, um eine Brep-Referenz zu erzeugen? Das werden bei mir immer so rasch elend lange Strings, völlig unübersichtlich, und bisher konnte der Kompiler bei mir noch nie was mit einer von mir selber erstellten Referenz anfangen und meckert mit einem Fehler. Ich hab meine Breps bisher versucht nach dem Muster von Ziethen zu erstellen. Hat aber bisher noch nie funktioniert. Das Beste, was ich dazu bisher gefunden habe, ist das hier: http://forum.cad.de/foren/ubb/Forum137/HTML/003580.shtml Allerdings funktioniert das in meinem Fall nicht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joehz Moderator Freiberuflicher Konstrukteur
Beiträge: 1057 Registriert: 25.11.2006 Win7 Pro 64 + Ubuntu + Irix6.5.20 Dell Precision M6600 i7-2960XM 2.7GHz 16GB NVidia Quadro M5010 Catia V5R19 VB6Pro.SP6/VBA 6.5.1053
|
erstellt am: 28. Jan. 2017 22:05 <-- editieren / zitieren --> Unities abgeben: Nur für White-Fox
Hi Fox, zeichne den Vorgang mit dem Makro-Rekorder auf und schau Dir dann die breps an. Code:
Dim reference1 As Reference Set reference1 = part1.CreateReferenceFromBRepName("FVertex:(Vertex:(Neighbours:(Face:(Brp:(Pad.1;2);None:();Cf11:());Face:(Brp:(Pad.1;0:(Brp:(Sketch.1;1)));None:();Cf11:());Fa ce:(Brp:(Pad.1;0:(Brp:(Sketch.1;4)));None:();Cf11:()));Cf11:());WithPermanentBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR15)", rectPattern1)Dim reference2 As Reference Set reference2 = part1.CreateReferenceFromBRepName("FVertex:(Vertex:(Neighbours:(Face:(Brp:(Pad.1;2);None:();Cf11:());Face:(Brp:(Pad.1;0:(Brp:(Sketch.1;1)));None:();Cf11:());Fa ce:(Brp:(Split.1_ResultOUT);None:();Cf11:()));Cf11:());WithPermanentBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR15)", rectPattern1) Dim hybridShapePointBetween1 As HybridShapePointBetween Set hybridShapePointBetween1 = hybridShapeFactory1.AddNewPointBetween(reference1, reference2, 0.5, 1) Dim reference3 As Reference Set reference3 = part1.CreateReferenceFromBRepName("REdge:(Edge:(Face:(Brp:(Pad.1;0:(Brp:(Sketch.1;1)));None:();Cf11:());Face:(Brp:(Pad.1;2);None:();Cf11:());None:(Limits1:();L imits2:());Cf11:());WithPermanentBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR15)", rectPattern1) hybridShapePointBetween1.Support = reference3
Die direkten Bezüge auf modell-typische Elemente(oben; Sketch.1 und Pad.1) musst halt dann durch eigene Variable ersetzen. Tschau, Joe ------------------ Inoffizielle Catia Hilfeseite Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
White-Fox Mitglied E-Techniker
Beiträge: 24 Registriert: 23.01.2017
|
erstellt am: 28. Jan. 2017 22:32 <-- editieren / zitieren --> Unities abgeben:
Hm...dann muß ich mir was einfallen lassen. Ich werd mal schauen ob ich ein Makro schreibe, daß mir den String zusammenbaut. Ich benenne z.B. die Skizzen um. Gibt es irgendeine Möglichkeit, die Nummer auszulesen? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joehz Moderator Freiberuflicher Konstrukteur
Beiträge: 1057 Registriert: 25.11.2006 Win7 Pro 64 + Ubuntu + Irix6.5.20 Dell Precision M6600 i7-2960XM 2.7GHz 16GB NVidia Quadro M5010 Catia V5R19 VB6Pro.SP6/VBA 6.5.1053
|
erstellt am: 28. Jan. 2017 22:38 <-- editieren / zitieren --> Unities abgeben: Nur für White-Fox
|
White-Fox Mitglied E-Techniker
Beiträge: 24 Registriert: 23.01.2017
|
erstellt am: 28. Jan. 2017 22:51 <-- editieren / zitieren --> Unities abgeben:
Ja, zum Beispiel. Catia benennt die Skizzen ja selbstständig wie Sketch.1, Sketch.2, usw.. Aber eine Skizze, die vorher erstellt oder weggelassen wird, würde mir einen statischen Code versauen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joehz Moderator Freiberuflicher Konstrukteur
Beiträge: 1057 Registriert: 25.11.2006 Win7 Pro 64 + Ubuntu + Irix6.5.20 Dell Precision M6600 i7-2960XM 2.7GHz 16GB NVidia Quadro M5010 Catia V5R19 VB6Pro.SP6/VBA 6.5.1053
|
erstellt am: 28. Jan. 2017 23:13 <-- editieren / zitieren --> Unities abgeben: Nur für White-Fox
Hi Fox, Du ersetzt die fix vorgegebenen Catia-Namen mit einer von Dir definierten Variable, zB. oAxSysCos, wobei Dim oAxSysCos As AxisSystem 'axis system for measuring angles ist und baust sie in den brep-String ein, zB. Code:
'refs der schenkel des neuen achsensystems bilden Set X_Axis = oParent.CreateReferenceFromBRepName("REdge:(Edge:(Face:(Brp:(" & oAxSysCos.Name & ";1);None:();Cf11:());Face:(Brp:(" _ & oAxSysCos.Name & ";3);None:();Cf11:());None:(Limits1:();Limits2:());Cf11:());WithPermanentBody;WithoutBuildError;" & _ "WithSelectingFeatureSupport;MFBRepVersion_CXR15)", oAxSysCos)
Tschau, Joe ------------------ Inoffizielle Catia Hilfeseite Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
razzor88 Mitglied
Beiträge: 42 Registriert: 09.06.2016
|
erstellt am: 29. Jan. 2017 19:58 <-- editieren / zitieren --> Unities abgeben: Nur für White-Fox
für den BREP-String braucht man aber doch den InternalName vom ModelElement. Z.B. Code: AXS_Bauteil_Plane_XY = Part1.CreateReferenceFromBRepName("RSur:(Face:(Brp:(" & AXS_Bauteil.GetItem("ModelElement").InternalName & ";1);None:();Cf11:());WithPermanentBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR15)", AXS_Bauteil)
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Bauleiter / Projektleiter für Industrie- und Sondergerüstbau (w/m/d) | Seit der Gründung 1976 hat sich aus dem ehemals klassischen Gerüstbauer MECKETH ein innovativer und überregional operierender Spezialist für vielseitige technische Sonderlösungen in allen Bereichen der Gerüst- und Höhentechnik entwickelt. Um auch künftig der Dynamik des Marktes gewachsen zu sein, suchen wir ab sofort für unsere Zentrale in Paderborn eine/n erfahrene/n Bauleiter/Projektleiter für Industrie- und Sondergerüstbau (m/w/d).... | Anzeige ansehen | Teamleitung, Gruppenleitung |
|
joehz Moderator Freiberuflicher Konstrukteur
Beiträge: 1057 Registriert: 25.11.2006 Win7 Pro 64 + Ubuntu + Irix6.5.20 Dell Precision M6600 i7-2960XM 2.7GHz 16GB NVidia Quadro M5010 Catia V5R19 VB6Pro.SP6/VBA 6.5.1053
|
erstellt am: 30. Jan. 2017 17:00 <-- editieren / zitieren --> Unities abgeben: Nur für White-Fox
Hi razzor, nicht unbedingt. So geht's auch:
Code:
'--------------------------------------------------------------------------------------- ' Procedure : CreateNewPart ' Author : jherzog ' Date : 08.12.2016 ' Time : 22:02 ' Languages : VBA 6.5 ' V5-Release: V5R19/21 ' Purpose : create sketch and 3d-surf based on sketch ' Parms : - ' Ret. Value: - ' ' Syntax : CreateNewPart_4 ' ' Prereqs : open catia session ' Remarks : sketch support plane(axis-plane) is defined in script '--------------------------------------------------------------------------------------- ' Sub CreateNewPart_4() Dim oADP As Part Dim oPB As AnyObject Dim oHB As HybridBody Dim oSel ' As Selection Dim oHSF As HybridShapeFactory Dim oHSPC0 As HybridShapePointCoord Dim oRef0 As Reference Dim oSketchPln As Plane Dim oRefPln As Reference Dim oSK ' As Sketch Dim oSKRef As Reference Dim oF2D ' As Factory2D Dim oHSEx As HybridShapeExtrude Dim arrPt2D(5) Dim oSpln2D As Spline2D Dim oHSDir ' As HybridShapeDirection Dim oAxSyst As AxisSystem 'axis system for measuring angles Dim XY_Plane As Reference Dim XZ_Plane As Reference Dim YZ_Plane As Reference 'create new part CATIA.Documents.Add ("Part") Set oADP = CATIA.ActiveDocument.Part Set oSel = CATIA.ActiveDocument.Selection oSel.Clear 'hide origin planes oSel.Add oADP.OriginElements.PlaneXY oSel.Add oADP.OriginElements.PlaneYZ oSel.Add oADP.OriginElements.PlaneZX oSel.VisProperties.SetShow catVisPropertyNoShowAttr oSel.Clear 'create axis Set oAxSyst = oADP.AxisSystems.Add() oADP.UpdateObject oAxSyst oAxSyst.IsCurrent = True 'define ref planes Set XY_Plane = oADP.CreateReferenceFromBRepName("RSur:(Face:(Brp:(" & oAxSyst.Name & ";1);None:();Cf11:());WithPermanentBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR15)", oAxSyst) Set XZ_Plane = oADP.CreateReferenceFromBRepName("RSur:(Face:(Brp:(" & oAxSyst.Name & ";3);None:();Cf11:());WithPermanentBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR15)", oAxSyst) Set YZ_Plane = oADP.CreateReferenceFromBRepName("RSur:(Face:(Brp:(" & oAxSyst.Name & ";2);None:();Cf11:());WithPermanentBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR15)", oAxSyst) 'create/set and show geoset Set oPB = oADP.Bodies.Item(1) If oADP.hybridBodies.Count = 0 Then Set oHB = oADP.hybridBodies.Add Else Set oHB = oADP.hybridBodies.Item(1) End If oSel.Add oHB oSel.VisProperties.SetShow catVisPropertyShowAttr oSel.Clear 'create/hide sketch plane Set oHSF = oADP.HybridShapeFactory Set oSketchPln = oHSF.AddNewPlaneOffset(XZ_Plane, 0#, True) oHB.AppendHybridShape oSketchPln oSel.Add oSketchPln oSel.VisProperties.SetShow catVisPropertyNoShowAttr oSel.Clear oADP.Update 'create sketch Set oSK = oHB.HybridSketches.Add(oSketchPln) Set oF2D = oSK.OpenEdition 'create spline Set arrPt2D(0) = oF2D.CreateControlPoint(0, 0) Set arrPt2D(1) = oF2D.CreateControlPoint(20, 10) Set arrPt2D(2) = oF2D.CreateControlPoint(40, -10) Set arrPt2D(3) = oF2D.CreateControlPoint(70, 15) Set arrPt2D(4) = oF2D.CreateControlPoint(100, -15) Set oSpln2D = oF2D.CreateSpline(arrPt2D) oSK.CloseEdition oADP.Update 'create extruded surf Set oHSDir = oHSF.AddNewDirection(oSketchPln) Set oSKRef = oADP.CreateReferenceFromObject(oSK) Set oHSEx = oHSF.AddNewExtrude(oSKRef, 30#, 0#, oHSDir) oHB.AppendHybridShape oHSEx oADP.Update End Sub
Tschau, Joe ------------------ Inoffizielle Catia Hilfeseite Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |