| |
| KISTERS 3DViewStation mit neuer Zerschneidefunktionen und erweitertem PMI-Support, eine Pressemitteilung
|
Autor
|
Thema: Referenz von einem Skizzenpunkt erstellen (1453 / mal gelesen)
|
BLD1983 Mitglied Konstrukteur
Beiträge: 87 Registriert: 27.09.2019 Catia V5 / R28 / R29 intel core i7-6700 cpu @ 3.40ghz RAM: 32GB 64Bit
|
erstellt am: 18. Mrz. 2020 19:00 <-- editieren / zitieren --> Unities abgeben:
Hallo. Warum kann man von einem ausgewählten Skizzenpunkt keine Referenz für eine Bohrung erstellen?
Setze ich jedoch einfach einen Punkt auf die Fläche und wähle diesen aus dann funktioniert das Ganze. '--------------------------------- Dim InputObj(0) 'InputObj(0)= "Vertex" 'für die Auswahl des Skizzenpunkt InputObj(0) = "Point" 'für die Auswahl des Punkts Set SelPoint = CATIA.ActiveDocument.Selection SelPoint.Clear Status = SelPoint.SelectElement2(InputObj, "Punkt auswaehlen", False) Set SelectedPunkt = SelPoint.Item(1).Value '------------------------------------------
mfg BLD ------------------ Ich will es gar nicht wissen, aber ich muss.....Das Leben verlangt es. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 12005 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 18. Mrz. 2020 19:50 <-- editieren / zitieren --> Unities abgeben: Nur für BLD1983
Servus BLD Ich befürchte dass du die Reference des Punktes per CreateReferenceFromBRepName bilden musst. (vergleiche auch Makroaufzeichnung und Fornensuche) Viel Spaß dabei Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BLD1983 Mitglied Konstrukteur
Beiträge: 87 Registriert: 27.09.2019 Catia V5 / R28 / R29 intel core i7-6700 cpu @ 3.40ghz RAM: 32GB 64Bit
|
erstellt am: 19. Mrz. 2020 10:24 <-- editieren / zitieren --> Unities abgeben:
Guten Morgen F**k sowas wollte ich nicht hören. Naja in der Zwischenzeit habe ich es auch so gelöst Aber es funktioniert im Part nur wenn die Skizze im Körper ist der bearbeitet wird. Will ich den gleichen Skizzenpunkt für Körper.2 übernehmen scheint es so als würde er dann einen anderen Skizzennamen verwenden. Makroaufzeichnung zeigt sonst keinen Unterschied. Code.................................(ja es ist nicht sauber) Dim InputObj(0) InputObj(0)= "Vertex" 'InputObj(0) = "Point" Set SelPoint = CATIA.ActiveDocument.Selection SelPoint.Clear Status = SelPoint.SelectElement2(InputObj, "Punkt auswaehlen", False) Set SelectedPunkt = SelPoint.Item(1).Value 'Msgbox "Ausgewählte_Punkt_" & SelectedPunkt.Name Laenge = Len(SelectedPunkt.Name) If Laenge = 108 then Z1=48 If Laenge = 110 then Z1=49 If Laenge = 108 then Z2=16 If Laenge = 110 then Z2=17 Text1 = left(SelectedPunkt.Name,Z1) Text2 = right(Text1,Z2) If Laenge = 108 then S1=71 If Laenge = 110 then S1=73 If Laenge = 108 then S2=8 If Laenge = 110 then S2=9 SkizzennameX= right(SelectedPunkt.Name,S1) Skizzenname= left(SkizzennameX,S2) MsgBox "GEKUERZT++" & Text2 &"++"& Laenge &"++"& Skizzenname Dim sketch1 As Sketch Set sketch1 = sketches1.Item(Skizzenname) 'hier kommt der Name 'Set sketch1 = sketches1.Item("Skizze.777")
Dim reference1 As Reference 'Set reference1 = part1.CreateReferenceFromBRepName("BorderFVertex BEdge Brp Sketch.3;2);None Limits1 );Limits2 );+1);Cf11 ));WithTemporaryBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR15)", sketch1) Set reference1 = part1.CreateReferenceFromBRepName("BorderFVertex BEdge "&Text2&";None Limits1 );Limits2 );+1);Cf11 ));WithTemporaryBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR15)", sketch1)
mfg ------------------ Ich will es gar nicht wissen, aber ich muss.....Das Leben verlangt es. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BLD1983 Mitglied Konstrukteur
Beiträge: 87 Registriert: 27.09.2019 Catia V5 / R28 / R29 intel core i7-6700 cpu @ 3.40ghz RAM: 32GB 64Bit
|
erstellt am: 19. Mrz. 2020 10:30 <-- editieren / zitieren --> Unities abgeben:
Dim sketch1 As Sketch Set sketch1 = sketches1.Item(Skizzenname) 'hier kommt der FEHLER 'Set sketch1 = sketches1.Item("Skizze.777") ------------------ Ich will es gar nicht wissen, aber ich muss.....Das Leben verlangt es. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 12005 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 19. Mrz. 2020 10:39 <-- editieren / zitieren --> Unities abgeben: Nur für BLD1983
Servus Lass dir mal deinen zusammengesetzten String für CreateReferenceFromBRepName ausgeben (ggf fehlen da nur Leerzeichen vor/nach &). Stimmt dieser mit der Makroaufzeichnung überein. Eventuell benötigst du für den BREF auch den InternalName der Skizze (siehe Forensuche) Schau dir mal den Name deines Selektierten Vertex an: Vermutlich kannst du den Teil von BEdge bis Cf11 direkt übernehmen. Müsstest dann hoffentlich nur den Präfix und Postfix ergänzen. (dann sparst du dir den Namen der Skizze zu bestimmen) Gruß Bernd EDIT: Vom Vertex auf die Skizze kommst du zB über SelectedPunkt.Parent ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BLD1983 Mitglied Konstrukteur
Beiträge: 87 Registriert: 27.09.2019 Catia V5 / R28 / R29 intel core i7-6700 cpu @ 3.40ghz RAM: 32GB 64Bit
|
erstellt am: 19. Mrz. 2020 12:00 <-- editieren / zitieren --> Unities abgeben:
Hallo Erstmal Danke für die SelectedPunkt.Parent Info! Jetzt steh ich etwas an.... 1. String für CreateReferenceFromBRepName muss ja stimmen sonst würde es im gleichen Körper auch nicht funktinieren. oder? (wie kann ich den String anzeigen?) 2. InternalName der Skizze ist "Sketch.3" der ist im Vertex Namen ersichtlich. (Sketch.3;2).....Skizze3; Punkt.2 3. wenn ich den Teil BEdge bis Cf11 direkt übernehme muss ich die Skizze trotzdem Bestimmen bzw Dank deiner Info jetzt nur auslesen. Skizzename über SelectedPunkt.Parent wird VOR dem String für CreateReferenceFromBRepName benötigt. '---------------------------------------------------------------------------------------------------------------------------------------------- 'Set reference1 = part1.CreateReferenceFromBRepName("BorderFVertex BEdge Brp:(Sketch.3;2);None Limits1 );Limits2 );+1);Cf11 ));WithTemporaryBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR15)", sketch1) '---------------------------------------------------------------------------------------------------------------------------------------------- ------------------ Ich will es gar nicht wissen, aber ich muss.....Das Leben verlangt es. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BLD1983 Mitglied Konstrukteur
Beiträge: 87 Registriert: 27.09.2019 Catia V5 / R28 / R29 intel core i7-6700 cpu @ 3.40ghz RAM: 32GB 64Bit
|
erstellt am: 19. Mrz. 2020 16:40 <-- editieren / zitieren --> Unities abgeben:
Hallo an Alle. Ich glaube jetzt hab ich die Lösung. Beim 1. Macro: 1. Körper der bearbeitet wird ausgewählt und aktiviert (in Bearbeitung gesetzt) = K.1 aktiv 2. Punkt für die Referenz1 ausgewählt und die dazugehörige Skizze ermittelt. 3. vom ausgewählten Punkt die Referenz1 erzeugt.....und hier liegt anscheined der Fehler, Referenz kann nur vom aktiven Körper in dem die Skizze liegt erstellt werden also Macro 2.:
1. SkizzenPunkt ausgewählt und den dazugehörigen Körper (K.1) in dem die Skizze liegt aktiviert 2. von diesem Punkt die Referenz1 erzeugt 3. die Fläche des zubearbitenden Körpers (K.2) ausgewählt und K.2 aktiviert 4. Referenz2 von Fläche erzeugt 5. Bohrung erstellt Mfg BLD
------------------ Ich will es gar nicht wissen, aber ich muss.....Das Leben verlangt es. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BLD1983 Mitglied Konstrukteur
Beiträge: 87 Registriert: 27.09.2019 Catia V5 / R28 / R29 intel core i7-6700 cpu @ 3.40ghz RAM: 32GB 64Bit
|
erstellt am: 21. Mrz. 2020 12:08 <-- editieren / zitieren --> Unities abgeben:
Guten Morgen. Ein neues Problem hat sich aufgetan... Wenn ich im Part eine Bohrung auf den Skizzenpunkt erstelle ist die Bohrung mit dem Skizzenpunkt verknüpft...sprich wenn ich die Bohrung in der Skizze verschiebe geht die Bohrung auch mit.....so solls sein. Im Product bzw von Part1(hier leigt die Skizze) zu Part 2(hier wird die Bohrung erstellt) wird keine Verknüpfung erstellt. Mit der Macroaufzeichnung sehe ich nur wie es auch das GEOSET: "Externen Verweise" und auf den darinliegenden Punkt zugreift aber nicht wie Catia GEOSET und Punkt erstellt. '------------------------------- Dim hybridBodies1 As HybridBodies Set hybridBodies1 = part1.HybridBodies Dim hybridBody1 As HybridBody Set hybridBody1 = hybridBodies1.Item("Externe Verweise") Dim hybridShapes1 As HybridShapes Set hybridShapes1 = hybridBody1.HybridShapes Dim hybridShape1 As HybridShape Set hybridShape1 = hybridShapes1.Item("Punkt.1") Dim reference2 As Reference Set reference2 = part1.CreateReferenceFromBRepName("BorderFVertex BEdge Brp GSMZeroDim.1);None Limits1 );Limits2 );+1);Cf11 ));WithPermanentBody;WithoutBuildError;WithInitialFeatureSupport;MonoFond;MFBRepVersion_CXR15)", hybridShape1) Dim geometricElements2 As GeometricElements Set geometricElements2 = factory2D1.CreateProjections(reference2) '--------------------------------- Hat jemand einen Tip, Info oder hat sich mal mit den Externen Verweisen gespielt
mfg Bld ------------------ Ich will es gar nicht wissen, aber ich muss.....Das Leben verlangt es. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 12005 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 21. Mrz. 2020 12:40 <-- editieren / zitieren --> Unities abgeben: Nur für BLD1983
Servus Bld Beim manuellen Vorgehen legt Catia die externen Verweise automatisch an. Per Makro müsstest du diese per Copy und Paste Special selbst erzeugen. Was hast du denn genau vor? Eventuell gibt es Verbesserungsmöglichkeiten in der Methodik. (zB nur veröffentlichte Elemente nutzen, Achsen/3D-Punkte statt Skizzen, ...) Gruß Bernd
------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BLD1983 Mitglied Konstrukteur
Beiträge: 87 Registriert: 27.09.2019 Catia V5 / R28 / R29 intel core i7-6700 cpu @ 3.40ghz RAM: 32GB 64Bit
|
erstellt am: 21. Mrz. 2020 13:58 <-- editieren / zitieren --> Unities abgeben:
Hallo Bgrittmann. Im Laufe der Konstruktion kommt es ab und zu vor dass ich/wir zb. statt einer Bohrung mit flachem Boden die Standardwerte lassen (spitz) oder Flüchtigkeitsfehler statt 8.02mm die Null vergessen und somit die Bohrung 8,2mm wird. Bei der 8,2mm Bohrung ist der Bauteil somit falsch und Ausschuss Beim spitzen Boden erkennt das CAM-Macro für das Fräsprogramm 2 Bohrungen (1 mal den Zylinder und 1 mal die Spitze). Bei wenigen Bohrung ist es nur ein Zeitfaktor und nicht so schlimm, bei Passbohrungen kann es unter Umständen wieder Ausschuss sein weil die Passung zu Groß ist. jetzt wollte ich eben ein Macro schrieben: 1. Punkt auswählen 2. Fläche für Bohrung auswählen 3. über Eingabe 1, 2, 3, 4 alle werte der jeweiligen Bohrung definieren. '--------------BSP------------------------------------------------- Input = InputBox ("1 = 8H7_Passstift _17Tief "& vbNewLine &""& vbNewLine &"2 = 4H7_Passstift_ 17Tief"& vbNewLine &""& vbNewLine &"3 = 12H7_Passstift _11Tief "& vbNewLine &""& vbNewLine &"4 = 6.8_KERNLOCH_M8_20tief"& vbNewLine &""& vbNewLine &"5 = 3.3_KERNLOCH_M4_20tief"& vbNewLine &""& vbNewLine &"6 = 5.2_KERNLOCH_M6_20tief", "TEXT", "999") If Input = 1 then Tiefe = 17.000 If Input = 1 then Di = 8.02 If Input = 2 then Tiefe = 17 If Input = 2 then Di = 4.02 If Input = 3 then Tiefe = 11.000 If Input = 3 then Di = 12.02 If Input = 4 then Tiefe = 20 If Input = 4 then Di = 6.8 If Input = 5 then Tiefe = 20 If Input = 5 then Di = 3.3 If Input = 6 then Tiefe = 20 If Input = 6 then Di = 5.2 hole1.BottomType = catFlatHoleBottom 'Bohrungsboden immer flach '--------------------------------------------------------- Es funktioniert ja auch soweit im Part.
Nur im Product vom Part1 zu Part2 entsteht keine Verküpfung und wenn ich die Bohrungsposition anpasse, sollte die Bohrung mitgehen. Bei meinen Programmierkenntnissen gibt es sicher Verbesserungsmöglichkeiten
mfg Bld ------------------ Ich will es gar nicht wissen, aber ich muss.....Das Leben verlangt es.
[Diese Nachricht wurde von BLD1983 am 21. Mrz. 2020 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 12005 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 21. Mrz. 2020 14:14 <-- editieren / zitieren --> Unities abgeben: Nur für BLD1983
Servus Und warum dann alles mit einem Makro erschlagen? Alternative Ideen: - Bohrungen nur noch über eine PowerCopy erzeugen bzw aus einem Katalog einfügen (da ist dann schon alles richtig definiert)
- per Makro alle Bohrungen auf "plausible" Werte testen (ggf entsprechende Methodik: Benennung/Farbliche Kennzeichnung der Feature
Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BLD1983 Mitglied Konstrukteur
Beiträge: 87 Registriert: 27.09.2019 Catia V5 / R28 / R29 intel core i7-6700 cpu @ 3.40ghz RAM: 32GB 64Bit
|
erstellt am: 21. Mrz. 2020 15:58 <-- editieren / zitieren --> Unities abgeben:
Hallo Ich hab mich mit Powercopy nicht beschäftigt und hab jetzt auch keinen Plan wo ich da ansetzen soll. Aber Ich denke mal es ist mit einem Macro "weniger Aufwand/weniger Klicks" als Powercopy ist. Macro starten, Punkt auswählen, Fläche auswählen, die benötigte Bohrung auswählen (1,2,3,...), fertig. Vor allem in eine Part sind meistens nur 3 oder 4 Bohrungen und meist auch nicht gleich (zb. (2x) 4.02_17tief und (2x)3.3_20tief, also was bring mir da eine Copy oder versteh ich das falsch???? Oder kann man die PC in Macros einbauen und je nach auswahl starten. Sorry für die blöden Fragen aber ich hab wegen dem Corona-Virus keine Literatur bei mir....Liegt sicher in der Firma. Mfg Bld ------------------ Ich will es gar nicht wissen, aber ich muss.....Das Leben verlangt es. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 12005 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 21. Mrz. 2020 16:20 <-- editieren / zitieren --> Unities abgeben: Nur für BLD1983
Servus PowerCopy wäre eine Alternative statt einem Makro. Per Makro eine PowerCopy einzufügen benötigt AFAIR eine KT1-Lizenz. Eine Geometrie auf ein anders Part referenzieren ist anspruchsvoll (siehe Copy und Paste hier in der Forensuche). Methodisch kann das ganze auch nach hinten los gehen. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BLD1983 Mitglied Konstrukteur
Beiträge: 87 Registriert: 27.09.2019 Catia V5 / R28 / R29 intel core i7-6700 cpu @ 3.40ghz RAM: 32GB 64Bit
|
erstellt am: 21. Mrz. 2020 17:31 <-- editieren / zitieren --> Unities abgeben:
Hallo. Danke...PowerCopy ist eine gute Alternative für ein paar andere Anwendungen bei uns .....jedoch nicht in diesem Fall oder? Trotzdem wie würdest du in meinem Fall mit den PowerCopys vorgehen? Mit ca.8 standard Bohrungsvarianten.... mfg Bld
------------------ Ich will es gar nicht wissen, aber ich muss.....Das Leben verlangt es. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |