| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX |
| |
| PDM Studio: Produktdaten-Management für den Mittelstand |
Autor
|
Thema: Bezugsobjekte per Macro auf Layer verschieben (11897 mal gelesen)
|
little_ug Mitglied CAX/PDM Admin / PM
Beiträge: 389 Registriert: 20.03.2003 NX 7.5.4.4 mp1 Creo2 M020 TC UA 9.1.1.2
|
erstellt am: 25. Jul. 2011 11:51 <-- editieren / zitieren --> Unities abgeben: Nur für Fitji
Hmmm, ich denke mal dass es am WP.Layers.MoveObjects(2, objArray) lieg probier mal WP.Layers.MoveDisplayableObjects(2, objArray) glaub des muss man mit 75 aendern... ------------------ Gruß Michael have you tried turning it off and on again Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Fende Mitglied
Beiträge: 174 Registriert: 02.03.2001
|
erstellt am: 25. Jul. 2011 12:15 <-- editieren / zitieren --> Unities abgeben: Nur für Fitji
|
little_ug Mitglied CAX/PDM Admin / PM
Beiträge: 389 Registriert: 20.03.2003 NX 7.5.4.4 mp1 Creo2 M020 TC UA 9.1.1.2
|
erstellt am: 25. Jul. 2011 12:46 <-- editieren / zitieren --> Unities abgeben: Nur für Fitji
Hi ja ist dein objectArray auch richtig definiert? Dim objArray(0) As DisplayableObject wenn dann musst mal das ding reinstellen... ------------------ Gruß Michael have you tried turning it off and on again Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Fende Mitglied
Beiträge: 174 Registriert: 02.03.2001
|
erstellt am: 25. Jul. 2011 13:42 <-- editieren / zitieren --> Unities abgeben: Nur für Fitji
|
little_ug Mitglied CAX/PDM Admin / PM
Beiträge: 389 Registriert: 20.03.2003 NX 7.5.4.4 mp1 Creo2 M020 TC UA 9.1.1.2
|
erstellt am: 25. Jul. 2011 13:53 <-- editieren / zitieren --> Unities abgeben: Nur für Fitji
Hi, das ist ganz normal... die sind alle bestandteil eine Bezugskoordinatensystems.... Da muss man nun noch filtern... kleines bsp.: For Each datumobj As DisplayableObject In wP.Datums .... Dim an_feat As NXOpen.Tag = NXOpen.Tag.Null ufs.Modl.AskObjectFeat(datumobj.Tag, an_feat) If an_feat <> NXOpen.Tag.Null Then Dim datumfeat As NXOpen.Features.Feature=NXOpen.Utilities.NXObjectManager.Get(an_feat) If Not datumfeat.FeatureType.StartsWith("DATUM_CSYS") Then .... Auch die Reihenfolge ist zu beachten... ------------------ Gruß Michael have you tried turning it off and on again Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Fende Mitglied
Beiträge: 174 Registriert: 02.03.2001
|
erstellt am: 25. Jul. 2011 14:37 <-- editieren / zitieren --> Unities abgeben: Nur für Fitji
sorry, aber ich bekomme das nicht hin... Wo muss ich den Code einfügen? Hier meine programmauszug: " 'Csys auf Layer 61 verschieben For Each obj As DisplayableObject In WP.Datums If Not obj.IsBlanked AndAlso WP.Layers.GetState(obj.Layer) <> Layer.State.Hidden Then objArray(0) = obj WP.Layers.MoveDisplayableObjects(61, objArray) End If Next " Du filterst nach dem Namen? [Diese Nachricht wurde von Fende am 25. Jul. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
little_ug Mitglied CAX/PDM Admin / PM
Beiträge: 389 Registriert: 20.03.2003 NX 7.5.4.4 mp1 Creo2 M020 TC UA 9.1.1.2
|
erstellt am: 25. Jul. 2011 15:13 <-- editieren / zitieren --> Unities abgeben: Nur für Fitji
Hi, ja in diesem Fall filtere ich nach dem Feature Type Namen.... Nun einfach: 'Csys auf Layer 61 verschieben For Each datumobj As DisplayableObject In wP.Datums .... Dim an_feat As NXOpen.Tag = NXOpen.Tag.Null ufs.Modl.AskObjectFeat(datumobj.Tag, an_feat) If an_feat <> NXOpen.Tag.Null Then Dim datumfeat As NXOpen.Features.Feature=NXOpen.Utilities.NXObjectManager.Get(an_feat) If Not datumfeat.FeatureType.StartsWith("DATUM_CSYS") Then If Not datumobj.IsBlanked AndAlso WP.Layers.GetState(datumobj.Layer) <> Layer.State.Hidden Then objArray(0) = datumobj WP.Layers.MoveDisplayableObjects(61, objArray) ... ------------------ Gruß Michael have you tried turning it off and on again Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Fende Mitglied
Beiträge: 174 Registriert: 02.03.2001
|
erstellt am: 25. Jul. 2011 15:33 <-- editieren / zitieren --> Unities abgeben: Nur für Fitji
Das ist nun mein Code: 'Csys auf Layer 61 verschieben For Each datumobj As DisplayableObject In wP.Datums If Not datumobj.IsBlanked AndAlso WP.Layers.GetState(datumobj.Layer) <> Layer.State.Hidden Then objArray(0) = datumobj WP.Layers.MoveDisplayableObjects(61, objArray) End If Dim an_feat As NXOpen.Tag = NXOpen.Tag.Null ufs.Modl.AskObjectFeat(datumobj.Tag, an_feat) If an_feat <> NXOpen.Tag.Null Then Dim datumfeat As NXOpen.Features.Feature=NXOpen.Utilities.NXObjectManager.Get(an_feat) If Not datumfeat.FeatureType.StartsWith("DATUM_CSYS") Then If Not datumobj.IsBlanked AndAlso WP.Layers.GetState(datumobj.Layer) <> Layer.State.Hidden Then objArray(0) = datumobj WP.Layers.MoveDisplayableObjects(61, objArray) Next Es geht nicht. Er kennt die "ufs.Modl.AskObjectFeat(datumobj.Tag, an_feat)" nicht.... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
little_ug Mitglied CAX/PDM Admin / PM
Beiträge: 389 Registriert: 20.03.2003 NX 7.5.4.4 mp1 Creo2 M020 TC UA 9.1.1.2
|
erstellt am: 25. Jul. 2011 15:39 <-- editieren / zitieren --> Unities abgeben: Nur für Fitji
Hmpf... hier nun ein Auszug aus meinen Programm.... mehr kann ich dann leider nicht mehr tun weil hier funzt eins a... Musst dir das zeugs rausziehe ;-) ------------------ Gruß Michael have you tried turning it off and on again Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |