| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SolidEdge |
| |
 | SPOT-ON: Der Struktur-Designer in NX CAD, ein Webinar am 05.08.2025
|
Autor
|
Thema: Gruppieren via VB (302 mal gelesen)
|
amg13 Mitglied
  
 Beiträge: 942 Registriert: 20.12.2002 Aktuell: FSC R550 2x Xeon X5450 QuadCore 8GB RAM Nvidia FX4800 Dell Precision M6300 Solid Edge ST3 NX 7.5 Solid Works 2010 Pro/E Das war einmal: HP Workstation >80x SolidEdge V19 (Classic & Foundation) 14x SMAP3D Piping/Partfinder
|
erstellt am: 21. Okt. 2004 17:39 <-- editieren / zitieren --> Unities abgeben:         
Hab nochmal ne frage, ich schaffe es nicht mit addtogroup() mehrere Object zu gruppieren indem ich ein Array benutze. (Sollte eigentlich gehen laut hilfe) Habt ihr das mal probiert. Habe keine lust hier z.b. 8 mal die gleiche Zeile einzutippen. um immer nur Objekt für Objekt hinzuzufügen. MfG AMG 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: 21. Okt. 2004 18:13 <-- editieren / zitieren --> Unities abgeben:          Nur für amg13
|
amg13 Mitglied
  
 Beiträge: 942 Registriert: 20.12.2002 Aktuell: FSC R550 2x Xeon X5450 QuadCore 8GB RAM Nvidia FX4800 Dell Precision M6300 Solid Edge ST3 NX 7.5 Solid Works 2010 Pro/E Das war einmal: HP Workstation >80x SolidEdge V19 (Classic & Foundation) 14x SMAP3D Piping/Partfinder
|
erstellt am: 21. Okt. 2004 21:56 <-- editieren / zitieren --> Unities abgeben:         
Hi Klaus, also ich hab ein Array als Variant definiert. Im Code später mit redim neue definiert und mit objekten belegt. z.B. obj2Group = Array(objL, objM, objN.....) beim Aufruf addtogroup(7, obj2Group()) ich hab auch andere varianten ausprobiert, aber dauernd kommen irgend welche fehler. ruf ich jede zeile einzeln auf addtogroup (1, objL) addtogroup (1, objM) .... dann funktioniert es. Wie muss der Aufruf aussehen? sag jetzt bitte nicht addtogroup (7, obj2group(1 to 7)) 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: 22. Okt. 2004 00:28 <-- editieren / zitieren --> Unities abgeben:          Nur für amg13
Moin, also wenn ich das richtig verstanden habe sieht's so aus: dim obj2Group as variant .... Nach dieser Zeile: obj2Group = Array(objL, objM, objN.....) enthaelt obj2Group einen Array *ist* aber selbst kein Array kann aber so abgearbeitet werden set objTemp = obj2Group(0) ... set objTemp = obj2Group(n) Nur kommt es auf die Abfrage innerhalb von SE an ob er damit klarkommt. Denn wenn explizit ein Array gefordert wird kann man kein Variant uebergeben Sicher muesste das so laufen private obj2Group() as Object private lGroupNumber as long private index as Long private oNewGroup as SolidEdgeFrameworkSupport.Group ' set oNewGroup = objSheet.Groups.Add("MyGroup") ' neue Gruppe anlegen if err.number <> 0 then Fehler: gruppe vorhanden ggf. mit gespeichert Nummer loeschen wenn im gleichen Durchlauf, sonst mit Namen suchen und wenn gefunden index als Nummer zum Loeschen nehmen else lGroupNumber = objSheet.Groups.Count ' Gruppennummer zum Loeschen etc. endif ' Redim obj2Group(0 to n) ' muss hier doch zero-based sein index = 0 index = 0 set obj2Group(index) = ObjectA index = index +1 .... .... set obj2Group(index) = ObjectB index = index + 1 .... if index > 0 then oNewGroup.addtoGroup(index,obj2Group) Redim obj2Group(0 to n) ' reset index = 0 endif Klaus
[Diese Nachricht wurde von modeng am 22. Okt. 2004 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Jürgen Niesner Mitglied
  
 Beiträge: 505 Registriert: 26.11.2001
|
erstellt am: 22. Okt. 2004 06:38 <-- editieren / zitieren --> Unities abgeben:          Nur für amg13
Servus AMG, wenns mit dem Array nicht geht, mit einer Schleife über die einzelnen Elemente des Array laufen und einzeln abarbeite. Ich glaube ich kann mich erinnern, dass sich ein Kolleg von mir vor ein paar Jahren, bei der Erstellung der Urversion, der PaßMaßTabelle sauch mal darüber beklagt hat. .SelectSet.RemoveAll 'SeelectSet leeren .Element.Select 'Element zum SelectSet hinzufügen .Gruppe.AddToGroup 'SelectSet (hat unser Element) zur Gruppe .SelectSet.RemoveAll 'SelectSet wieder aufräumen. Die vierte Zeile hat Stefan noch kommentiert: "... ab V12 muss sofort nach AddToGroup das SelectSet geleert werden, da sonst SE absemmelt, wieso weiss ich nicht..." Ob es funzt wenn mehrere Objekt im SelectSet sind wäre noch zu prüfen. Jürgen ------------------ 54* SEV15SR8, 4*SEV16.00.01.03 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: 22. Okt. 2004 09:16 <-- editieren / zitieren --> Unities abgeben:          Nur für amg13
Moin, der Fehler tritt zumindest in V14/Sp6 nicht mehr auf. Also koennte das SelectSet.RemoveAll entfallen, sollte jedoch gemacht werden, da SE ansonsten im Select Modus verbleibt. Es koennen diverse Objekte mit Select dem SelectSet hinzugefuegt werden bevor der AddToGroup ausgefuehrt wird, dopplete Objekte im SelectSet werden ignoriert. Klaus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |