Autor
|
Thema: Cumulated Dimension per Makro erzeugen (1422 mal gelesen)
|
AlfaRomeo75 Mitglied Dipl.Ing. - Flächenkonstrukteur/Methodenplaner
Beiträge: 174 Registriert: 06.12.2004 ----------------- Windows XP professional Version2002 Service Pack 2 ----------------- CATIA V5 R16 SP5 ----------------- Intel Pentium 4 3,4GHz 4 GB RAM -----------------
|
erstellt am: 13. Jun. 2007 11:56 <-- editieren / zitieren --> Unities abgeben:
Hallo, da ich noch keinerlei Erfahrung in Makroprogrammierung im Drawing-Bereich habe, möchte ich hier mal die Frage stellen, ob es möglich ist per Makro eine "Cumulated Dimension" zu erstellen. (siehe Bild-Anhang!) Der Recorder zeichnet im Drawing bekanntlicherweise nichts auf! Wie ich eine Standardbemaßung z.B. zwischen zwei Punkten in einer bestimmten Richtung erzeuge weiß ich schon. Nur leider brauche ich umbedingt die "Cumulated Dimension". In der DOKU habe ich nichts entsprechendes gefunden! Wäre nett wenn jemand dazu was schreiben könnte!
------------------ ------------------------------------------------- Gruß, AlfaRomeo75 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
imation1999 Mitglied dipl.-ing. Maschinenbau
Beiträge: 276 Registriert: 02.08.2011 Dell Precision T3500 Intel® Xeon® Quad Core NVIDIA Quadro® 5000 Win7 x64 Ultimate CATIA V5 R20 SP2
|
erstellt am: 28. Aug. 2015 08:10 <-- editieren / zitieren --> Unities abgeben: Nur für AlfaRomeo75
|
user7 Mitglied
Beiträge: 17 Registriert: 26.08.2022
|
erstellt am: 12. Sep. 2022 09:18 <-- editieren / zitieren --> Unities abgeben: Nur für AlfaRomeo75
|
Randle Mitglied CAD/PLM Consultant
Beiträge: 695 Registriert: 12.04.2003 Win10 x64 CATIA V5 R18, R19, R21, R27-29
|
erstellt am: 12. Sep. 2022 15:25 <-- editieren / zitieren --> Unities abgeben: Nur für AlfaRomeo75
Hallo, also wenn du damit generierte Ansichten bemaßen willst, sehe ich da (aktuell) keine Möglichkeit (Elemente einer generierten Ansicht lassen sich per Makro nicht auswählen). Ob sich dieser Bemaßungstyp überhaupt per Makro erzeugen lässt wäre noch mal eine andere Frage. Vielleicht beschreibst du das Ziel das du erreichen willst, vielleicht gibt es ja andere Möglichkeiten zur Umsetzung. Gruß Randle ------------------ Wer für nichts steht, fällt für alles! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
user7 Mitglied
Beiträge: 17 Registriert: 26.08.2022
|
erstellt am: 13. Sep. 2022 09:06 <-- editieren / zitieren --> Unities abgeben: Nur für AlfaRomeo75
Hi Randle, Danke für die Bestätigung meiner Befürchtung. Ich wollte automatisiert Lochbemaßungen durchführen. D.h. z.B. für eine Platte alle Löcher bemaßen. Ich hab bereits eine passende View erstellt und die Löcher (von Typ "Hole)) an der Hand -- jetzt wollte ich die Löcher in horizontaler und vertikaler Ebene mit "cumulative Dimensions" versehen. In dem Fall werde ich jetzt versuchen das Ganze nachzustellen, indem ich normale linear Dimensions erstelle und die Darstellung so anpasse, dass es so aussieht wie eine Verknüpfte Bemaßung. Ich werde hier ein Update hinterlassen ob/wie es geklappt hat. Oder hast du eine Idee wie man das besser lösen könnte? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 13. Sep. 2022 09:16 <-- editieren / zitieren --> Unities abgeben: Nur für AlfaRomeo75
Servus Was willst du denn Bemaßen? AFAIK kannst du nicht auf die geometrischen Elemente die aus dem 3D abgeleitet sind zugreifen. Du müsstest sonst in der Zeichnung selbst Geometrie erzeugen und diese dann vermaßen. Als Alternative gäbe es noch per FTA die Ansicht und Bemaßungen zu erzeugen. Wie schlecht dass dokumentiert (und ggf nicht komplett implementiert) hast du ja schon selbst festgestellt. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Randle Mitglied CAD/PLM Consultant
Beiträge: 695 Registriert: 12.04.2003 Win10 x64 CATIA V5 R18, R19, R21, R27-29
|
erstellt am: 13. Sep. 2022 09:38 <-- editieren / zitieren --> Unities abgeben: Nur für AlfaRomeo75
Hallo, evtl. kannst du ja auch die automatische Bemaßungsgenerierung (teil-) automatisieren. Hier können dann die Bedingungen aus dem 3D Sketcher als Basis genutzt werden. Gruß Randle ------------------ Wer für nichts steht, fällt für alles! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
user7 Mitglied
Beiträge: 17 Registriert: 26.08.2022
|
erstellt am: 13. Sep. 2022 12:45 <-- editieren / zitieren --> Unities abgeben: Nur für AlfaRomeo75
Hallo Bernd, als einfach Beispiel würde ich gerne 6 Bohrungen, welche wie auf einem Spielwürfel angeordnet sind, bemaßen. Dazu würde ich ausgehend von einem beliebigen zunächst horizontal alle bemaßen, dann vertikal. Tatsächlich bin ich bereits in 3D - d.h. ich würde gerne die Bemaßungen mit der FTA Lizenz in 3D setzen. Gerade scheitere ich aber schon am workaround (programmatisch eine Linear Dimension entlang einer von mir festgesetzten Richtung setzen). Gruß Matt Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
user7 Mitglied
Beiträge: 17 Registriert: 26.08.2022
|
erstellt am: 13. Sep. 2022 12:47 <-- editieren / zitieren --> Unities abgeben: Nur für AlfaRomeo75
|
user7 Mitglied
Beiträge: 17 Registriert: 26.08.2022
|
erstellt am: 13. Sep. 2022 14:45 <-- editieren / zitieren --> Unities abgeben: Nur für AlfaRomeo75
Ich hatte mir das deutlich einfacher vorgestellt, "einfach" eine "linear dimension" zwischen zwei Objekten vom Typ "Reference" (in dem Fall zwei cylindrical faces) zu setzen und dabei eine mitgegebene Richtung zu forcieren - sagen wir Vector(1,0,0). Hat jemand eine Ahnung, wie das über ein Makro anzustellen ist? Blau: so hätte ich gerne die dimension; Rot: Default bei unten-stehendem Code - ich würde gerne die Richtung explizit angeben (nicht nur View horizontal / vertikal -- wobei ich auch gerne wissen würde wie das geht..) Der bisherige Code zum Erstellen der schiefen Dimension: Code:
Language="VBSCRIPT"Sub CATMain(native_view,native_face1,native_face2,dimType,linDimSubType) Set partDocument1 = CATIA.ActiveDocument Set part1 = partDocument1.Part Set userSurfaces1 = part1.UserSurfaces Set userSurface1 = userSurfaces1.Generate(native_face1) Set userSurface2 = userSurfaces1.Generate(native_face2) Set userSurfComboNode = userSurfaces1.MakeUserSurfaceNode(userSurface1, userSurface2) Set annotationSet1 = part1.AnnotationSets.Item(1) Set annotationFactory = annotationSet1.AnnotationFactory Dim pmi as Annotation; Set pmi = annotationFactory.CreateSemanticDimension(userSurfComboNode,5,0) ' 5 = CATTPSOrientedLinearDimension; 0 = CATTPSDistanceDimension native_view.Annotations.Add(pmi) End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
user7 Mitglied
Beiträge: 17 Registriert: 26.08.2022
|
erstellt am: 15. Sep. 2022 09:22 <-- editieren / zitieren --> Unities abgeben: Nur für AlfaRomeo75
Falls noch jemand hier drüberstolpert... ich habe eine super-hässliche Lösung gefunden - wie man die Linear PMI immerhin an horizontale / vertikale Viewausrichtung anpassen kann: Code:
Language="VBSCRIPT" Sub CATMain() Dim partDocument1 As Document Set partDocument1 = CATIA.ActiveDocument Dim part1 As Part Set part1 = partDocument1.Part Dim oSel as Selection Set oSel = partDocument1.selection oSel.Clear Dim Filter(0) Filter(0)="Face"Dim F_Faces as object F_Faces = oSel.SelectElement3(Filter, "select faces",False, CATMultiSelectionMode.CATMultiSelTriggWhenUserValidatesSelection, False) objcount = oSel.count Dim ref1 As Reference Set ref1 = oSel.Item(1).Value Dim ref2 As Reference Set ref2 = oSel.Item(2).Value Set userSurfaces1 = part1.UserSurfaces Set userSurface1 = userSurfaces1.Generate(ref1) Set userSurface2 = userSurfaces1.Generate(ref2) Set userSurfComboNode = userSurfaces1.MakeUserSurfaceNode(userSurface1, userSurface2) Set annotationSet1 = part1.AnnotationSets.Item(1) Set annotationFactory = annotationSet1.AnnotationFactory Set pmi = annotationFactory.CreateNonSemanticDimension(userSurfComboNode,5,0) oSel.Clear oSel.Add(pmi) CATIA.StartCommand("Force Horizontal Dimension in View") msgBox("DONE!!" & oSel.count) End Sub
hier wird also einfach der Button aus dem Kontextmenü als Freitext über StartCommand getriggert... denke das ist relativ instabil und könnte sogar kollabieren wenn man nur die Sprache ändert -.- Vorschläge über bessere Lösungen sind wärmstens willkommen (: Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
user7 Mitglied
Beiträge: 17 Registriert: 26.08.2022
|
erstellt am: 15. Sep. 2022 11:51 <-- editieren / zitieren --> Unities abgeben: Nur für AlfaRomeo75
|