| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX |
Autor
|
Thema: View-Scale in .Net anderer Wert als interaktiv (938 mal gelesen)
|
macfrei Mitglied
Beiträge: 7 Registriert: 13.06.2012
|
erstellt am: 20. Jun. 2012 15:09 <-- editieren / zitieren --> Unities abgeben:
Hi zusammen Beim Ermitteln des Massstabs einer oder mehrerer Views habe ich festgestellt, dass die Scales, die das Programm zurückbringt, abweichen von dem Scale, der im NX mit RMB "Stil..." ersichtlich ist. Code-Schnipsel:
Code:
DraftingView mView; DrawingSheet mysheet = workPart.DrawingSheets.CurrentDrawingSheet; dViews = mysheet.GetDraftingViews() ; lw.Open(); vCount = dViews.Length; for (int i = 0; i < vCount; i++) { mView = dViews[i]; vScale = mView.Scale; lw.WriteLine(" Masstab bei View : " + mView.Name + " ist = " + vScale.ToString()); .....
Im Code erhalte ich z.B. 2.07662898177803, interaktive Abfrage liefert: 2.000.Output von obigem Programm:
Masstab bei View : 2-FRONT ist = 1.03831449088902 Masstab bei View : 3-SECTION A-A ist = 1.03831449088902 Masstab bei View : 6-SECTION B-B ist = 2.07662898177803 Masstab bei View : 7-DETAIL_SECTION A-A (clip) ist = 5.19157245444509 Masstab bei View : 7-DETAIL_SECTION A-A ist = 5.19157245444509 Masstab bei View : 8-EXPLICIT ist = 1.03831449088902 Masstab bei View : 5-DETAIL_EXPLICIT (clip) ist = 2.07662898177803 Masstab bei View : 5-DETAIL_EXPLICIT ist = 2.07662898177803
Die "echten" Scales sind aber 1.000, 2.000, 5.000 Hat jemand eine Vorstellung, woran das liegt? Danke und Gruss Markus
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: 20. Jun. 2012 17:09 <-- editieren / zitieren --> Unities abgeben: Nur für macfrei
Hi Markus, bei mir funzt des mit: Dim mysheet As Drawings.DrawingSheet = Nothing Dim scale As String = "" Dim dwgview As String = "" Dim scaledbl As Double = 0 mysheet = nxpart.DrawingSheets.CurrentDrawingSheet For Each member_view In mysheet.GetDraftingViews() dwgview = member_view.Name scale = member_view.Style.General.Scale.ToString scaledbl = member_view.Style.General.Scale Next ------------------ Gruß Michael have you tried turning it off and on again Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Zerspanungsmechaniker (m/w/d) CNC-Fräsen / CAM-Programmierung ? Werkzeugbau | Langlebig, verschleißarm, ressourcenschonend und wiederverwertbar ? das sind die technischen Lösungen der igus® GmbH. Unsere nachhaltigen Produkte aus Hochleistungspolymeren kommen überall dort ins Spiel, wo sich was bewegt und sich noch mehr bewegen soll: Kaum eine Branche kommt ohne unsere innovativen Kunststofflösungen aus, die jede Art von Technologie beweglicher und damit leistungsfähiger macht.... | Anzeige ansehen | Mechaniker |
|
macfrei Mitglied
Beiträge: 7 Registriert: 13.06.2012
|
erstellt am: 21. Jun. 2012 10:34 <-- editieren / zitieren --> Unities abgeben:
Hi Michael Danke für deinen Input, das kann ich gut gebrauchen. Ich hatte schon einen "Workaround", indem ich den Scale der View des Drawingsheets abfrage und danach den Scale der einzelnen Views durch diesen "MasterScale" dividiere. Dann stimmt der Scale auch wieder: Code:
DraftingView[] dViews; DraftingView mView; DrawingSheet mysheet = workPart.DrawingSheets.CurrentDrawingSheet; dViews = mysheet.GetDraftingViews() ; sheetScale = mysheet.View.Scale; vCount = dViews.Length;for (int i = 0; i < vCount; i++) { mView = dViews[i]; vScale = mView.Scale / sheetScale; ....
Dein Vorschlag ist natürlich eleganter und ich übernehme das sehr gerne. Danke für deinen Tipp. Gruss Markus
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |