|
CATIA V5 Programmierung : Feature Name von Body mit Parameter füttern?
DanielFr. am 28.09.2010 um 08:46 Uhr (0)
Hallo Christian,also ich habe mal kurz über das Script geschaut und mir sind folgende Kleinigkeiten aufgefallen:1. Alle Variablen werden nur lokal in der Hauptroutine verwendet. Trotzdem sind sie als Public deklariert. Das ist nicht notwendig und verwirrt nur2. Du gibst bei allen Variablen als Suffix deinen Datentyp an (bei zwei aber nicht?)3. Achte darauf das die Variablennamen wirklich eindeutig sind (d.h. der Name der Variable auch mit dem tatsächlichen Aufgabenbereich der Variable übereinstimmt). Ein B ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Late Binding mit Visual Basic 2008 Express Edition
DanielFr. am 20.09.2010 um 13:22 Uhr (0)
Hallo ,das wird einfach über die Methode GetObject in VB.NET realisiert. Du kannst alle Methoden und Eigenschaften genauso wie mit einem early Binding verwendet, hast aber keine intelliSense Unterstützung! Des weiteren kannst du nicht über den Objekt-Brwoser auf die Objekte, Methoden und Klassen zugreifen. D.h. während der Entwicklung eines komplexen Programms ist es für den Workflow (der Programmierung) sicherlich einfacher ein early Binding einzusetzen. Wenn du das Programm dann final veröffentlichst dan ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Parameter füllen / String / Dateiname
DanielFr. am 30.09.2010 um 15:21 Uhr (0)
Hallo ,wenn du deinen Parameter sauber deklarierst dann passiert dir das nicht immer wieder. .Value ist eine Eigenschaft. Diese kann nicht mit "Set" definiert sein!oParamsLief.value = Text2 (so gehts)Set wird nur verwendet wenn Objekte instanziert werden. D.h. die Variable bekommt nicht einfach nur einen Wert zugewiesen wie im obigen Beispiel sondern nimmt selbst ein komplettes Objekt auf z.B:Set oDoc = CATIA.ActiveDocument (wobei CATIA.Active Dokument ein Objekt ist)------------------MFG DanielSysteminfor ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Teile ausblenden über Makro in verbindung mit Excel
DanielFr. am 30.09.2010 um 17:30 Uhr (0)
Hallo ,möglich ist das ohne Problem aber ich denke je nach Baugruppengröße nicht performat. Die Performnace könntest du über einen anderen Ansatz wesentlich erhöhen.Mach deine Baugruppe und lade alle Teile rein. Jetzt eine DesignTable mit der Aktivität der einzelnen Bauteile verknüpfen. Diese Tabelle steuerst du über deine UF an. ------------------MFG DanielSysteminformation | Inoffizielle CATIA Hilfeseite | CATIA FAQ | Suche | TraceParts (Normteile...) | 3D Content Central (noch mehr Normteile...)
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Late Binding mit Visual Basic 2008 Express Edition
DanielFr. am 20.09.2010 um 11:51 Uhr (0)
Hallo ,der Syntax bleibt der selbe. Beim Early Binding werden die Com-Verweise zu den CATIA-Klassen explizit angegeben. Somit ist es Möglich ein Objekt auch den CATIA spezifischen Datentyp über die Dim Anweisung zuzuordnen (z.B. Dim oPart as Part). Beim Late Binding hingegegen gibt es keine Verweise auf die Com-Klassen. D.h. du kannst auch keinen CATIA spezifischen Datentyp deklarieren. In diesem Fall werden alle Variablen die von einem CATIA Objekt vererbt sind einfach als Objekte deklariert.Beispiel:EARL ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Deklaration von Variablen
DanielFr. am 06.11.2009 um 05:58 Uhr (0)
Hallo,IMHO geb ich Zoltan da vollkommen recht. Manchmal lässt es sich einfach nicht vermeiden bzw. ist sogar dienlich für de Übersichtkeit wenn man eine globale Variable setzt aber in den meisten Fällen sind Übergabeargumente wesentlich sinnvoller (die Fehler werden einfach schneller gefunden und es ist IMHO logischer aufgebaut, da die Variable in der Übergabe selber deklariert wird (hier wird sie ja auch benötigt und nicht irgendwo im Script))------------------MFG DanielSysteminformation | Inoffizielle CA ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : String in Zahl umwandeln
DanielFr. am 19.10.2010 um 12:58 Uhr (0)
Hallo Bertel,das Problem ist der Punkt in deiner Zahl. Das erkennt dein VB (aufgrund der Spracheinstellung) nicht als Komma sondern als 1000der Trennung an. Hier mal ein Beispiel wie es funktionieren sollte (erst "." mit "," replacen und dann konvertieren.Code:Sub CATMain() Dim intValueStr As String Dim outValueDbl As Double intValueStr = "-4.978612e+001" intValueStr = Replace(intValueStr, ".", ",") outValueDbl = CDbl(intValueStr)End SubErgebnis von outValueDbl ist -49,978612 ------------------MFG ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Parameter auslesen und ansprechen
DanielFr. am 20.10.2010 um 10:57 Uhr (0)
Hallo Henry,also mit dem .Value hast du natürlich vollkommen recht .Textfelder auf Zeichnungen können aber mehrmals mit dem selben Namen belegt werden. Hier wird natürlich nur nach dem DisplayNamen gesucht (dieser kann gleich sein). Die Schreibgeschütze Eigenschaft "internalName" liefert unterschiedliche Namen (Erhöhung des Counter z.B. DrwText.1...DrwText.2..DrwText.n).Das heißt es sollte zur Sicherung der Konsistenz auf jeden Fall diese Abfrage rein ;-)Anbei mal ein Testmakro. Voraussetzung sind zwei Tex ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Parameter auslesen und ansprechen
DanielFr. am 20.10.2010 um 10:02 Uhr (0)
Hallo,das Suchen alleine ist nur die halbe Lösung. Hier wird das Textfeld nur gesucht und selektiert (falls es auf der Zeichnung vorhanden ist). Alle gefundenen Objekte werden in die "Such-Collection" aufgenommen und müssen explizit angesprochen werdenDim intTextFieldObj as TextSet objSel = objDoc.SelectionobjSel.Search "Drafting.Text.Name=PRO.FILE@DOKID*"If objSel.Count = 1 then Set intTextFieldObj = objSel.Item(1)ElseIf objSel.Count = 0 then MsgBox "Textfeld wurde nicht gefunden"ElseIf objSel.Count 1 th ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Annotations im Product - method Parent failed
DanielFr. am 27.10.2010 um 10:22 Uhr (0)
Hallo Henry,ist doch heute alles nur noch copy&paste ------------------MFG DanielSysteminformation | Inoffizielle CATIA Hilfeseite | CATIA FAQ | Suche | TraceParts (Normteile...) | 3D Content Central (noch mehr Normteile...)
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Annotations im Product - method Parent failed
DanielFr. am 26.10.2010 um 12:52 Uhr (0)
Hallo Henry,die smarteste...halt einzigste...Möglichkeit die mir einfällt ist über das ModelElement zu gehen (aus dem Objekt der User-Selection). Hier gibt es das Objekt "Document". In diesem befindet sich das komplett Dokument das an das ModelELement übergeben wurde (d.h. auch deine gesuchtet Root-Produkt).Da du dich nicht über die Parents hangeln musst....ist das Ganze doch wieder smart . Anbei mal mein Beispielcode (selektiert wird hier die View aber das kannst du ja noch ändern)Code:Sub CATMain() ***b ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Parameter auslesen und ansprechen
DanielFr. am 26.10.2010 um 13:13 Uhr (0)
Hallo zusammen,@Henry: Wenn man nach einem explizietem Namen sucht und das all im String weglässt, dann sucht CATIA automatisch überall ;-)@Thomas: ich denke es liegt an der fehlerhaften impliziten Typumwandlung von VBA selbst. MAche das mal explizit und konvertiere vor dem Replace (bzw. im Replace Befehl) deine Variable nachmals in einen String If Sel1.Item(i).Value.Parent.Name = "Parameters" Then sOldname = Sel1.Item(i).Value.Name sNewname = Replace(CStr(sNewname), sOld, sNew) Sel1.Item(i). ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Makro starten wenn Parameter geändert wird
DanielFr. am 28.10.2010 um 14:37 Uhr (0)
Hallo,wie Bernd sagte...das geht mit einer Reaction. Hierzu ist eine KWA-Lizenz notwendig und die Workbench Knowledge ADVISOR. Hier können Objekte überwacht und ggf. Events abgefeuert werden. Das Ganze kann direkt in CATSCript auslösen und läuft nach der ERstellung auch ohne KWA Lizenz ab------------------MFG DanielSysteminformation | Inoffizielle CATIA Hilfeseite | CATIA FAQ | Suche | TraceParts (Normteile...) | 3D Content Central (noch mehr Normteile...)
|
In das Form CATIA V5 Programmierung wechseln |