Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Automatisiert Mit Makro Lineare Dimension erstellen (Abstandsmaß)

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:  Automatisiert Mit Makro Lineare Dimension erstellen (Abstandsmaß) (373 / mal gelesen)
user7
Mitglied



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

Beiträge: 17
Registriert: 26.08.2022

erstellt am: 30. Aug. 2022 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


docCatiaDim.PNG

 
Hallo zusammen,

ich würde gerne automatisiert ein Abstandsmaß einfügen. Ich habe die beiden parallelen Flächen bereits an der Hand (MECMOD.Face native_face1, MECMOD.Face native_face2).
Eigentlich würde ich gerne direkt in C# eine Dimension erstellen. Allerdings scheitere ich dabei ein UserSurface für mein Face zu erstellen. Im Makro funktioniert das wunderbar - in der API für C# scheint 'Generate()' jedoch nicht verfügbar zu sein. Daher gehe ich aktuell den nicht so schönen Umweg über Makros - diese werden mit einer Parameterliste in C# aufgerufen und erstellen darin das Makro. Zumindest für CreateRoughness(UserSurface1) funktioniert das so. Der schönere Weg direkt mit C# sähe vmtl. so ähnlich aus:

Code:

// C#
UserSurface usf1 = document.Part.UserSurfaces.Generate(native_face1); /// <-- scheitert hier; keine Funktion 'Generate'
AnnotationSet annotationSet1 = (AnnotationSet)document.Part.AnnotationSets.GetItem(annotationset_name);
annotationSet1.CreateSemanticDimension(usf1, ??, ??); /// <-- hier wüsste ich ebenfalls nicht was parameter 2 und 3 sein sollen...
// CreateSemanticDimension(UserSurface iSurf, ref object iType, ref object iSubType)

Frage 1) Hat jemand eine Ahnung wie ich auf alternativem Wege an ein UserSurface kommen kann? Bzw. wie ich direkt in C# eine Dimension erzeugen kann, ohne den Umweg über Makros zu gehen? 


.


Ein weiteres Problem stellt sich mir beim Erstellen von Abstandsmaßen. Aus der Dokumentation auf catiaDoc.free.fr - AnnotationFactory werde ich nicht schlau (s. Anhang). Der zweite Parameter ist z.B. vom Typ iDimensionType - wobei die Auflistung eher auf ein Enum schließen lässt? Weder im Makro, noch in C# wüsste ich was genau ich hier angeben sollte, um die richtige Einstellung zu wählen (1 : CATTPSLinearDimension und 0 : CATTPSDistanceDimension).


Mein aktuelles Makro sieht so aus:

Code:

Language="VBSCRIPT"

Sub CATMain(native_face1,native_face2,annotationset_name)

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 annotationSet1 = part1.AnnotationSets.Item(annotationset_name)

Set annotationFactory = annotationSet1.AnnotationFactory

Set pmi = annotationFactory.CreateNonSemanticDimension(userSurface1,1,0)

End Sub



Frage 2) welche Parameter benötigt CreateNonSemanticDimension im Makro (bzw. in C# falls es eine Lösung für Frage 1 gibt)?


.


Frage 3) Kennt jemand den Unterschied zwischen CreateNonSemanticDimension und CreateSemanticDimension?


.


Vielen Dank schon einmal für die Unterstützung. Ich hänge an dem Problem schon seit geraumer Zeit.. Würde mich über jeglichen Input freuen (:


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



Architekt:in/Bauingenieur:in für die Planungskoordination/-steuerung im Schlüsselfertigbau (m/w/d)
Als Teil der weltweit tätigen STRABAG SE und Nummer eins im deutschen Hoch- und Ingenieurbau bauen wir bei ZÜBLIN laufend am Fortschritt. Einzigartigkeit und individuelle Stärken kennzeichnen dabei unsere Projekte und jede:n Einzelne:n von uns.
Ob im Hoch- und Ingenieurbau, Spezialtiefbau, Tunnel-, Stahl- und Holzbau oder in der Bauwerkserhaltung ? wir denken Bauen weiter, um der innovativste und nachhaltigste Bautechnologiekonzern Europas zu werden....
Anzeige ansehenTeamleitung, Gruppenleitung
user7
Mitglied



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

Beiträge: 17
Registriert: 26.08.2022

erstellt am: 31. Aug. 2022 08:19    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

Frage 2) konnte ich inzwischen klären. Nicht die Parameter waren das Problem - sondern das userSurface. Hier muss zunächst ein Surface Knoten erstellt werden - im Anschluss können wie erwartet die Zahlen als Enum Referenzen für die Parameter verwendet werden. 

Funktionierendes Skript: (native_face1 und native_face2 sind bei mir vom typ MECMOD.Face und planare, parallele Flächen).

Code:

Language="VBSCRIPT"
Sub CATMain(native_face1,native_face2,annotationset_name)

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(annotationset_name)

Set annotationFactory = annotationSet1.AnnotationFactory

Set pmi = annotationFactory.CreateNonSemanticDimension(userSurfComboNode,1,0)

End Sub


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