| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SolidEdge |
Autor
|
Thema: VB: GetInputFeatures (875 mal gelesen)
|
TommyH Mitglied Masch. Ing HTL
Beiträge: 45 Registriert: 28.08.2002
|
erstellt am: 25. Nov. 2008 10:26 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen Ich habe mal vor langer (V14?)Zeit eine kleine Anpassung geschrieben, welche es erlaubt, die Anzahl der Musterbohrungen in einem Part zu steuern. Das hat auch wunderbar funktioniert, mit Betonung auf "hat". Bei einem neu modellierten Teil (V20), welches auch Musterbohrungen enthält, schaut es aber nicht mehr so gut aus. Die Anzahl der Musterbohrungen lässt sich mit dem Makro nicht mehr verändern. Ausser, ich kopiere die Musterbohrungen aus dem alten Teil in das neu erstellte Teil. Dann funktioniert es. Leider bin ich diesbezüglich ungenügend dokumentiert. Ich finde keine Doku mehr dazu, weder im GTAC, CAD.DE oder Google. Meine Fragen: - Kennt jemand die Methode GetInpuFeatures oder hat Doku dazu? - Gibt es eine andere Möglichkeiten die Anzahl von bereits erstellten Musterbohrungen zu steuern? Im Anhang die Datei die funktioniert 130337.par und jene die nicht mehr funktioniert 151475.par Danke schon mal im Voraus für eure Inputs.. Code:
'(Delete the supernumery Userdefined Pattern prgBarActivate.Max = lvwVariable.ListItems.Count prgBarActivate.Value = 0 StatusBar1.Panels(3).text = "Musterbohrungen"Set objModel = objDoc.Models(1) For j = 1 To lvwVariable.ListItems.Count For i = objModel.UserDefinedPatterns.Count To 1 Step -1 prgBarActivate.Value = j If objModel.UserDefinedPatterns.Item(i).Name = lvwVariable.ListItems(j) Then Set objUDPat1 = objModel.UserDefinedPatterns(i) Call objUDPat1.GetInputFeatures(InputFeatures:=objInpFts()) For k = Anzahl_Elemente + 1 To maxValve objInpFts(k).Delete Next Set objUDPat1 = Nothing For l = 1 To 6 Set objInpFts(l) = Nothing Next Exit For End If Next Next ')
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
modeng Ehrenmitglied V.I.P. h.c.
Beiträge: 7061 Registriert: 10.12.2003
|
erstellt am: 25. Nov. 2008 11:23 <-- editieren / zitieren --> Unities abgeben: Nur für TommyH
koennte an intern geaendertem Aufbau des UDP liegen. Mach die Bohrungen einmal neu und versuch's dann noch mal. Die angespr. Funktion stellt nur die Objekte in einen Array mehr nicht. dies: For l = 1 To 6 Set objInpFts(l) = Nothing Next kann man durch Erase objInpFts ersetzen /Edit es haengt mit der Querbohrung (Hole 5) zuammen, manuell loeschen geht auch nicht. Macht man die 3mm Bohrungen tiefer dann geht's wieder
[Diese Nachricht wurde von modeng am 25. Nov. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
TommyH Mitglied Masch. Ing HTL
Beiträge: 45 Registriert: 28.08.2002 precision M4500 win 7 x64 se st3mp8
|
erstellt am: 25. Nov. 2008 14:53 <-- editieren / zitieren --> Unities abgeben:
Besten Dank für die Antwort. Bohrung 5 lässt sich bei mir manuell löschen. Wenn ich die 3 mm Bohrungen tiefer mache funktioniert es auch nicht. Was mich erstaunt ist, dass wenn ich ein Watch setze auf "objInpFts", enthält dieser Array mit der neuen Datei keine Objekte (Siehe Anlage). Was erklärt, wieso die Anzahl nicht geändert werden kann. Fraglich ist aber, wieso die Zuweisung in den Array nicht klappt. Was wiederum mit dem geänderten internen Aufbau zusammenhängen könnte, wie du erwähnt hast. Die Frage ist nun Bug oder Feature? Übrigens habe ich mittlerweile Infos über diese Funktion gefunden --> SE Hilfe: "Programmieren mit SE" . Im Moment bleibt mir nur der Umweg über "Kopieren der Musterbohrungen aus der alten Datei in die neue Datei". Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
modeng Ehrenmitglied V.I.P. h.c.
Beiträge: 7061 Registriert: 10.12.2003
|
erstellt am: 25. Nov. 2008 15:00 <-- editieren / zitieren --> Unities abgeben: Nur für TommyH
wenn ich Dein Teil nehme und manuell(!) 1 der 3mm Bohrungen loesche gibt es einen Fehler (V20/V100). Mach ich die 3mm statt 5,5 tief z.B. 9mm dann kann ich eine der 3mm loeschen ohne das ein Fehler auftritt Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
modeng Ehrenmitglied V.I.P. h.c.
Beiträge: 7061 Registriert: 10.12.2003
|
erstellt am: 25. Nov. 2008 15:15 <-- editieren / zitieren --> Unities abgeben: Nur für TommyH
Die Bohrungen (3mm) sind irgendwie 'kaputt'. Geh mal in dem Teil was nicht funktioniert so vor: - Bohrungen auswaehlen - Bearbeiten Definition - oben in der Leiste - Tiefe/Extent waehlen - 5,5 eingeben - Richtung festlegen - fertig stellen Dann sollte das Loeschen, auch manuell, klappen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
TommyH Mitglied Masch. Ing HTL
Beiträge: 45 Registriert: 28.08.2002 precision M4500 win 7 x64 se st3mp8
|
erstellt am: 25. Nov. 2008 16:14 <-- editieren / zitieren --> Unities abgeben:
mmh.. ich erkenne, was du meinst. Ich denke aber nicht, dass etwas nicht stimmt mit der Bohrung 3 mm. Die Bohrung ist zwar "mit Abmass" definiert, nicht über ein Mass mit Eingabe 5.5, sondern geometrisch mit dem Zentrumspunkt der Bohrung 5 verknüpft. Nach dem Löschen einer Bohrung stimmt dann die Richtung der Musterbohrung nicht mehr und es kommt zu einem Fehler. Auch mit der Korrektur funktioniert das Makro nicht... [Diese Nachricht wurde von TommyH am 25. Nov. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
modeng Ehrenmitglied V.I.P. h.c.
Beiträge: 7061 Registriert: 10.12.2003
|
erstellt am: 25. Nov. 2008 16:21 <-- editieren / zitieren --> Unities abgeben: Nur für TommyH
wenn ich so vorgehen wie beschrieben klapp alles. Ob das nun so mit den 5,5 fix OK ist ist eine andere Sache aber an der Ecke hakt es jedenfalls. Dem zweiten Teil fehlt die Querbohrung und dahe geht's da auch problemlos. Es kann sein das wenn die Tiefe per Keypoint festgelegt wird, man keins der Elemente loeschen kann. Das wuerde passen da auch ein manuelles Loeschen nicht moeglich ist. das koennte man umgehen in dem die Bohrungstiefe auf ca. festgelegt wird und dann das Mass mit der Variable des Abstandes der Querbohrung (5,5) verknuepft. Somit aendert sich die Tiefe mit. [Diese Nachricht wurde von modeng am 25. Nov. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |