| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: C# - Overruling DimensionText (2243 mal gelesen)
|
RoSiNiNo Mitglied Konstrukteur
Beiträge: 1126 Registriert: 09.10.2002 Revit Structure 2011 Acad 2011-deutsch, Express Tools 3ds Max 2011 Win 7-Professional HP Workstation Z400, 6GB GeForce GTX 470
|
erstellt am: 20. Mrz. 2010 11:07 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich habe ein Problem mit Overruling DimensionText. Ich möchte bei einer Bemaßung den Text überschreiben. Allerdings nur die Sichtbarkeit und nicht die Bemaßung selber. Overruling sollte da die Beste Lösung sein, dachte ich. Interessanterweise hatte es schon einmal funktioniert, jetzt aber bekomme ich es nicht mehr hin. Ich bekomme bei der Rückgabe "result" im Beispiel immer false zurück. Weiß jemand wieso und wie ich es umgehen kann? Ich habe nun schon mehrere Stunden damit verbracht und komme nicht dahinter. Bei Kreisen ist es kein Problem, wie man anhand des Beispiels erkennen kann. Ich bin für jede Hilfe sehr dankbar. Code: using Autodesk.AutoCAD.ApplicationServices; using Autodesk.AutoCAD.DatabaseServices; using Autodesk.AutoCAD.GraphicsInterface; using Autodesk.AutoCAD.Runtime;[assembly: CommandClass(typeof(RSNNAcadApp.DimensionCommands.OverruleTemp))] namespace RSNNAcadApp.DimensionCommands { internal class DimOverrule : DrawableOverrule { public DimOverrule() { Overrule.Overruling = true; // if you don't do this, nothing works } public override bool WorldDraw(Drawable drawable, WorldDraw wd) { bool result = true; Dimension dim = drawable as Dimension; if (dim != null) { using (Dimension clone = (Dimension)dim.Clone()) { //clone.DimensionText = ChangeStyle.GetDimTextExponent(clone); clone.Prefix = "Prefix Test "; result &= base.WorldDraw(clone, wd); } } else result &= base.WorldDraw(drawable, wd); return result; } } internal class CircleOverrule : DrawableOverrule {
public CircleOverrule() { Overrule.Overruling = true; // if you don't do this, nothing works } public override bool WorldDraw(Drawable drawable, WorldDraw wd) { bool result = true; Circle dim = drawable as Circle; if (dim != null) { using (Circle clone = (Circle)dim.Clone()) { //clone.DimensionText = ChangeStyle.GetDimTextExponent(clone); clone.Radius = 10; result &= base.WorldDraw(clone, wd); } } else result &= base.WorldDraw(drawable, wd); return result; } } class OverruleTemp { private static CircleOverrule myCircOverrule = null;
[CommandMethod("CircOVERRULE")] public static void OverruleCommand() { if (myCircOverrule == null) { myCircOverrule = new CircleOverrule(); Overrule.AddOverrule(RXObject.GetClass(typeof(Circle)), myCircOverrule, false); //Overrule.Overruling = true; } else { // Toggle Overruling on/off Overrule.Overruling ^= true; } Application.DocumentManager.MdiActiveDocument.Editor.Regen(); } private static DimOverrule myDimOverrule = null; [CommandMethod("DimOVERRULE")] public static void DimOverruleCommand() { if (myDimOverrule == null) { myDimOverrule = new DimOverrule(); Overrule.AddOverrule(RXObject.GetClass(typeof(Dimension)), myDimOverrule, false); //Overrule.Overruling = true; } else { // Toggle Overruling on/off Overrule.Overruling ^= true; } Application.DocumentManager.MdiActiveDocument.Editor.Regen(); } } }
------------------ Roland Feletic PCD ZT-GmbH Acad 2010-deutsch Update 1, Express Tools, Advantage Pack 1 3ds Max 2010 WinXP-Professional HP Workstation xw4400, 3GB Quadro FX1500 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 20. Mrz. 2010 11:42 <-- editieren / zitieren -->
Hi, bei mir funkt Dein Beispiel EINS-A. Damit könnte ich mal annehmen, dass a) die Projekteigenschaften zwischen unseren Projekten unterschiedlich sein könnten b) Ich mit Civil3D(32bit) probiert hab, Du ev. mit anderem AutoCAD-Produkt/ServicePack/Betriebssystem ...und wahrscheinlich noch mehr Varianten. Kannst Du ev. mal Dein DLL (das fertig kompilierte uploaden), damit gleichen wir mal die möglichen Projekteinstellungsunterschiede aus. - alfred - ------------------ www.hollaus.at |
RoSiNiNo Mitglied Konstrukteur
Beiträge: 1126 Registriert: 09.10.2002 Revit Structure 2011 Acad 2011-deutsch, Express Tools 3ds Max 2011 Win 7-Professional HP Workstation Z400, 6GB GeForce GTX 470
|
erstellt am: 20. Mrz. 2010 13:14 <-- editieren / zitieren --> Unities abgeben:
Das ist jetzt aber sehr interessant. Bei mir hat es nämlich auch funktioniert und auf einmal nicht mehr. ------------------ Roland Feletic PCD ZT-GmbH Acad 2010-deutsch Update 1, Express Tools, Advantage Pack 1 3ds Max 2010 WinXP-Professional HP Workstation xw4400, 3GB Quadro FX1500 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 20. Mrz. 2010 13:19 <-- editieren / zitieren -->
Hi, hast Du mal probiert, dieses auf einem anderen Rechner anzustarten? Funktioniert's dann schon oder dort auch nicht? Oder tritt der Fehler gar nur während des Debugen's auf? Ich kann auch davon ausgehen, dass Du keine andere Überschreibung (in anderen Modulen, ev. auch Reaktor in LISP) für den Objekttyp Bemassung geladen hast? Wenn Du nach dieser Funktion in AutoCAD den Befehl _AUDIT startest, werden Fehler gefunden oder ist die Zeichnung stabil? - alfred - ------------------ www.hollaus.at |
RoSiNiNo Mitglied Konstrukteur
Beiträge: 1126 Registriert: 09.10.2002 Revit Structure 2011 Acad 2011-deutsch, Express Tools 3ds Max 2011 Win 7-Professional HP Workstation Z400, 6GB GeForce GTX 470
|
erstellt am: 20. Mrz. 2010 14:15 <-- editieren / zitieren --> Unities abgeben:
Ich denke mal ich werde das ganze mal in einem neuen Projekt testen. Ich danke dir erstmal fürs testen. Ich werde meine Lösung dann mal hier reinstellen. ------------------ Roland Feletic PCD ZT-GmbH Acad 2010-deutsch Update 1, Express Tools, Advantage Pack 1 3ds Max 2010 WinXP-Professional HP Workstation xw4400, 3GB Quadro FX1500 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RoSiNiNo Mitglied Konstrukteur
Beiträge: 1126 Registriert: 09.10.2002 Revit Structure 2011 Acad 2011-deutsch, Express Tools 3ds Max 2011 Win 7-Professional HP Workstation Z400, 6GB GeForce GTX 470
|
erstellt am: 20. Mrz. 2010 16:33 <-- editieren / zitieren --> Unities abgeben:
Hallo Alfred, da bin ich nochmal. Kannst du vielleicht einmal probieren ob das Programm auch mit dieser Funktion funktioniert? Es sollte die Bemaßung mit Hochzahlen schreiben. Irgendwie bekomme ich es nicht hin. Bei mir geht es einfach nicht. Kannst du die kompilierte Datei dann mal schicken oder hier anhängen. Es würde mich interessieren ob die bei mir auch funktioniert. Danke im voraus. Code: public static string GetDimTextExponent(Dimension dim) { Type dimType = dim.GetType(); // Es werden nur Längenmaße überschrieben if ((dimType == typeof(LineAngularDimension2)) | (dimType == typeof(OrdinateDimension)) | (dimType == typeof(Point3AngularDimension))) return null; // Wenn keine Nachkommastellen vorhanden sind, können wir auch abbrechen if (dim.Dimdec == 0) return null; string dimText = dim.DimensionText; // Ist der Bemaßungstext überschrieben und beinhaltet kein Maß, können wir abbrechen if (dimText != "") { if (!dimText.Contains("<>")) return null; } double dimMeasurement = dim.Measurement; double dimRound = dim.Dimrnd; int dimDec = dim.Dimdec;
if (dimRound != 0) dimMeasurement = Utils.MyUtils.RoundedValue(dimMeasurement, dimRound); // Wir setzten den Text für die Bemaßungslänge string dimTextMeasurement = dimMeasurement.ToString("F" + dimDec.ToString()); // Wenn die Zeichnung in Metern un der Dimsclae 1 ist, das Maß ebenfalls kleiner als 1 ist, ... if (HostApplicationServices.WorkingDatabase.Insunits == UnitsValue.Meters & dim.Dimscale == 1 & dimMeasurement < 1) { // ... wandeln wir in cm um und reduzieren die Nachkommastellen. dimDec -= 2; dimTextMeasurement = (dimMeasurement * 100).ToString("F" + dimDec.ToString()); } StringBuilder sbDim = new StringBuilder(dimTextMeasurement); if (dimTextMeasurement.EndsWith("0")) { if (dimDec < 2) sbDim.Remove(sbDim.Length - 2, 2); else sbDim.Remove(sbDim.Length - 1, 1); } else { if (dimDec < 2) sbDim.Remove(sbDim.Length - 2, 1); sbDim.Insert(sbDim.Length - 1, @"{\A1;\H0.7x;\S"); sbDim.Insert(sbDim.Length, @"^;}"); } if (dim.Prefix != "") sbDim.Insert(0, dim.Prefix); if (dim.Suffix != "") sbDim.Insert(sbDim.Length, dim.Suffix); if (dimText != "") { int Wo = dimText.IndexOf("<>"); if (Wo > 0) sbDim.Insert(0, dimText.Substring(0, Wo)); if (Wo < dimText.Length - 2) sbDim.Insert(sbDim.Length, dimText.Substring(Wo + 2)); } return sbDim.ToString(); }
------------------ Roland Feletic PCD ZT-GmbH Acad 2010-deutsch Update 1, Express Tools, Advantage Pack 1 3ds Max 2010 WinXP-Professional HP Workstation xw4400, 3GB Quadro FX1500 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 20. Mrz. 2010 17:35 <-- editieren / zitieren -->
Hi, was soll denn funktionieren? Ich sehe zwar, dass Du eine Bemassung in die Funktion übergibst, aber Du änderst in dieser Funktion die Bemassung nicht. Welchen Rückgabewert erwartest Du und welchen erhältst Du? - alfred - PS: folgende Zeile wird bei einem Versuch von mir nicht funktionieren: ...Utils.MyUtils.RoundedValue(... PPS: eine Zeichnung mit den Voreinstellungen, die mit diesem Code etwas bewirken, wäre auch vorteilhaft, da z.B. INSUNITS, Bemassungsstileinstellungen, ..? scheinbar Voraussetzungen für die Lauffähigkeit dieses Codes darstellen. ------------------ www.hollaus.at |
RoSiNiNo Mitglied Konstrukteur
Beiträge: 1126 Registriert: 09.10.2002 Revit Structure 2011 Acad 2011-deutsch, Express Tools 3ds Max 2011 Win 7-Professional HP Workstation Z400, 6GB GeForce GTX 470
|
erstellt am: 20. Mrz. 2010 18:30 <-- editieren / zitieren --> Unities abgeben:
OK, hier ist eine Datei die ich zum Testen gemacht habe. Es sollten einfach nur Hochzahlen erstellt werden, mehr nicht. Ich habe den Code noch einmal hier zusammengefügt und es sollte nun alles ohne Probleme funktionieren, hoffe ich nun mal. Ich danke dir in jedem Fall für deine Bemühungen. Ich denke mal das dieses Tool für manch andere auch recht interessant wäre. Code: using Autodesk.AutoCAD.ApplicationServices; using Autodesk.AutoCAD.DatabaseServices; using Autodesk.AutoCAD.GraphicsInterface; using Autodesk.AutoCAD.Runtime; using System.Text; using System;[assembly: CommandClass(typeof(RSNNAcadApp.DimensionCommands.Hochzahlen))] namespace RSNNAcadApp.DimensionCommands { internal class DimOverrule : DrawableOverrule { public DimOverrule() { Overrule.Overruling = true; // if you don't do this, nothing works } public override bool WorldDraw(Drawable drawable, WorldDraw wd) { bool result = true; Dimension dim = drawable as Dimension; if (dim != null) { using (Dimension clone = (Dimension)dim.Clone()) { clone.DimensionText = Hochzahlen.GetDimTextExponent(clone); //clone.Prefix = "Prefix Test "; result &= base.WorldDraw(clone, wd); } } else result &= base.WorldDraw(drawable, wd); return result; } } internal class CircleOverrule : DrawableOverrule {
public CircleOverrule() { Overrule.Overruling = true; // if you don't do this, nothing works } public override bool WorldDraw(Drawable drawable, WorldDraw wd) { bool result = true; Circle dim = drawable as Circle; if (dim != null) { using (Circle clone = (Circle)dim.Clone()) { //clone.DimensionText = ChangeStyle.GetDimTextExponent(clone); clone.Radius = 10; result &= base.WorldDraw(clone, wd); } } else result &= base.WorldDraw(drawable, wd); return result; } } class Hochzahlen { private static CircleOverrule myCircOverrule = null;
[CommandMethod("CircOVERRULE")] public static void OverruleCommand() { if (myCircOverrule == null) { myCircOverrule = new CircleOverrule(); Overrule.AddOverrule(RXObject.GetClass(typeof(Circle)), myCircOverrule, false); //Overrule.Overruling = true; } else { // Toggle Overruling on/off Overrule.Overruling ^= true; } Application.DocumentManager.MdiActiveDocument.Editor.Regen(); } private static DimOverrule myDimOverrule = null; [CommandMethod("DimOVERRULE")] public static void DimOverruleCommand() { if (myDimOverrule == null) { myDimOverrule = new DimOverrule(); Overrule.AddOverrule(RXObject.GetClass(typeof(Dimension)), myDimOverrule, false); //Overrule.Overruling = true; } else { // Toggle Overruling on/off Overrule.Overruling ^= true; } Application.DocumentManager.MdiActiveDocument.Editor.Regen(); } public static string GetDimTextExponent(Dimension dim) { Type dimType = dim.GetType();
// Es werden nur Längenmaße überschrieben if ((dimType == typeof(LineAngularDimension2)) | (dimType == typeof(OrdinateDimension)) | (dimType == typeof(Point3AngularDimension))) return null; // Wenn keine Nachkommastellen vorhanden sind, können wir auch abbrechen if (dim.Dimdec == 0) return null; string dimText = dim.DimensionText; // Ist der Bemaßungstext überschrieben und beinhaltet kein Maß, können wir abbrechen if (dimText != "") { if (!dimText.Contains("<>")) return null; } double dimMeasurement = dim.Measurement; double dimRound = dim.Dimrnd; int dimDec = dim.Dimdec;
if (dimRound != 0) dimMeasurement = Utils.MyUtils.RoundedValue(dimMeasurement, dimRound); // Wir setzten den Text für die Bemaßungslänge string dimTextMeasurement = dimMeasurement.ToString("F" + dimDec.ToString()); // Wenn die Zeichnung in Metern un der Dimsclae 1 ist, das Maß ebenfalls kleiner als 1 ist, ... if (HostApplicationServices.WorkingDatabase.Insunits == UnitsValue.Meters & dim.Dimscale == 1 & dimMeasurement < 1) { // ... wandeln wir in cm um und reduzieren die Nachkommastellen. dimDec -= 2; dimTextMeasurement = (dimMeasurement * 100).ToString("F" + dimDec.ToString()); } StringBuilder sbDim = new StringBuilder(dimTextMeasurement); if (dimTextMeasurement.EndsWith("0")) { if (dimDec < 2) sbDim.Remove(sbDim.Length - 2, 2); else sbDim.Remove(sbDim.Length - 1, 1); } else { if (dimDec < 2) sbDim.Remove(sbDim.Length - 2, 1); sbDim.Insert(sbDim.Length - 1, @"{\A1;\H0.7x;\S"); sbDim.Insert(sbDim.Length, @"^;}"); } if (dim.Prefix != "") sbDim.Insert(0, dim.Prefix); if (dim.Suffix != "") sbDim.Insert(sbDim.Length, dim.Suffix); if (dimText != "") { int Wo = dimText.IndexOf("<>"); if (Wo > 0) sbDim.Insert(0, dimText.Substring(0, Wo)); if (Wo < dimText.Length - 2) sbDim.Insert(sbDim.Length, dimText.Substring(Wo + 2)); } return sbDim.ToString(); }
} }
------------------ Roland Feletic PCD ZT-GmbH Acad 2010-deutsch Update 1, Express Tools, Advantage Pack 1 3ds Max 2010 WinXP-Professional HP Workstation xw4400, 3GB Quadro FX1500 [Diese Nachricht wurde von RoSiNiNo am 20. Mrz. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 20. Mrz. 2010 18:40 <-- editieren / zitieren -->
Hi, was soll die Funktion: Utils.MyUtils.RoundedValue(dimMeasurement, dimRound) liefern? Normale Rundung oder steckt da was spezielles dahinter? - alfred - ------------------ www.hollaus.at |
RoSiNiNo Mitglied Konstrukteur
Beiträge: 1126 Registriert: 09.10.2002 Revit Structure 2011 Acad 2011-deutsch, Express Tools 3ds Max 2011 Win 7-Professional HP Workstation Z400, 6GB GeForce GTX 470
|
erstellt am: 20. Mrz. 2010 18:45 <-- editieren / zitieren --> Unities abgeben:
|
Ex-Mitglied
|
erstellt am: 20. Mrz. 2010 18:47 <-- editieren / zitieren -->
Hi, und gleich noch was, die Function 'GetDimTextExponent' wird nirgends aufgerufen, damit steh ich leider wieder bei dem Punkt, es wird ein Returnwert aus der Function geliefert, aber wo/wie wird diese verwendet? Oder bin ich ein klein wenig blind am Wochenende [EDIT] ==> ich bin blind und hab meine Suchfunktion falsch eingestellt gehabt, sorry [/EDIT] - alfred - ------------------ www.hollaus.at |
RoSiNiNo Mitglied Konstrukteur
Beiträge: 1126 Registriert: 09.10.2002 Revit Structure 2011 Acad 2011-deutsch, Express Tools 3ds Max 2011 Win 7-Professional HP Workstation Z400, 6GB GeForce GTX 470
|
erstellt am: 20. Mrz. 2010 18:47 <-- editieren / zitieren --> Unities abgeben:
Hoffe nun ist alles dran. Code: using Autodesk.AutoCAD.ApplicationServices; using Autodesk.AutoCAD.DatabaseServices; using Autodesk.AutoCAD.GraphicsInterface; using Autodesk.AutoCAD.Runtime; using System.Text; using System;[assembly: CommandClass(typeof(RSNNAcadApp.DimensionCommands.Hochzahlen))] namespace RSNNAcadApp.DimensionCommands { internal class DimOverrule : DrawableOverrule { public DimOverrule() { Overrule.Overruling = true; // if you don't do this, nothing works } public override bool WorldDraw(Drawable drawable, WorldDraw wd) { bool result = true; Dimension dim = drawable as Dimension; if (dim != null) { using (Dimension clone = (Dimension)dim.Clone()) { clone.DimensionText = Hochzahlen.GetDimTextExponent(clone); //clone.Prefix = "Prefix Test "; result &= base.WorldDraw(clone, wd); } } else result &= base.WorldDraw(drawable, wd); return result; } } internal class CircleOverrule : DrawableOverrule {
public CircleOverrule() { Overrule.Overruling = true; // if you don't do this, nothing works } public override bool WorldDraw(Drawable drawable, WorldDraw wd) { bool result = true; Circle dim = drawable as Circle; if (dim != null) { using (Circle clone = (Circle)dim.Clone()) { //clone.DimensionText = ChangeStyle.GetDimTextExponent(clone); clone.Radius = 10; result &= base.WorldDraw(clone, wd); } } else result &= base.WorldDraw(drawable, wd); return result; } } class Hochzahlen { private static CircleOverrule myCircOverrule = null;
[CommandMethod("CircOVERRULE")] public static void OverruleCommand() { if (myCircOverrule == null) { myCircOverrule = new CircleOverrule(); Overrule.AddOverrule(RXObject.GetClass(typeof(Circle)), myCircOverrule, false); //Overrule.Overruling = true; } else { // Toggle Overruling on/off Overrule.Overruling ^= true; } Application.DocumentManager.MdiActiveDocument.Editor.Regen(); } private static DimOverrule myDimOverrule = null; [CommandMethod("DimOVERRULE")] public static void DimOverruleCommand() { if (myDimOverrule == null) { myDimOverrule = new DimOverrule(); Overrule.AddOverrule(RXObject.GetClass(typeof(Dimension)), myDimOverrule, false); //Overrule.Overruling = true; } else { // Toggle Overruling on/off Overrule.Overruling ^= true; } Application.DocumentManager.MdiActiveDocument.Editor.Regen(); } public static string GetDimTextExponent(Dimension dim) { Type dimType = dim.GetType();
// Es werden nur Längenmaße überschrieben if ((dimType == typeof(LineAngularDimension2)) | (dimType == typeof(OrdinateDimension)) | (dimType == typeof(Point3AngularDimension))) return null; // Wenn keine Nachkommastellen vorhanden sind, können wir auch abbrechen if (dim.Dimdec == 0) return null; string dimText = dim.DimensionText; // Ist der Bemaßungstext überschrieben und beinhaltet kein Maß, können wir abbrechen if (dimText != "") { if (!dimText.Contains("<>")) return null; } double dimMeasurement = dim.Measurement; double dimRound = dim.Dimrnd; int dimDec = dim.Dimdec;
if (dimRound != 0) dimMeasurement = RoundedValue(dimMeasurement, dimRound); // Wir setzten den Text für die Bemaßungslänge string dimTextMeasurement = dimMeasurement.ToString("F" + dimDec.ToString()); // Wenn die Zeichnung in Metern un der Dimsclae 1 ist, das Maß ebenfalls kleiner als 1 ist, ... if (HostApplicationServices.WorkingDatabase.Insunits == UnitsValue.Meters & dim.Dimscale == 1 & dimMeasurement < 1) { // ... wandeln wir in cm um und reduzieren die Nachkommastellen. dimDec -= 2; dimTextMeasurement = (dimMeasurement * 100).ToString("F" + dimDec.ToString()); } StringBuilder sbDim = new StringBuilder(dimTextMeasurement); if (dimTextMeasurement.EndsWith("0")) { if (dimDec < 2) sbDim.Remove(sbDim.Length - 2, 2); else sbDim.Remove(sbDim.Length - 1, 1); } else { if (dimDec < 2) sbDim.Remove(sbDim.Length - 2, 1); sbDim.Insert(sbDim.Length - 1, @"{\A1;\H0.7x;\S"); sbDim.Insert(sbDim.Length, @"^;}"); } if (dim.Prefix != "") sbDim.Insert(0, dim.Prefix); if (dim.Suffix != "") sbDim.Insert(sbDim.Length, dim.Suffix); if (dimText != "") { int Wo = dimText.IndexOf("<>"); if (Wo > 0) sbDim.Insert(0, dimText.Substring(0, Wo)); if (Wo < dimText.Length - 2) sbDim.Insert(sbDim.Length, dimText.Substring(Wo + 2)); } return sbDim.ToString(); }
public static double RoundedValue(double value, double roundvalue) { return Math.Floor((value + roundvalue / 2) / roundvalue) * roundvalue; } } }
------------------ Roland Feletic PCD ZT-GmbH Acad 2010-deutsch Update 1, Express Tools, Advantage Pack 1 3ds Max 2010 WinXP-Professional HP Workstation xw4400, 3GB Quadro FX1500 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 20. Mrz. 2010 19:07 <-- editieren / zitieren -->
Hi, solls so aussehen? dann hier die Zeichnung von mir (Deine konnt ich nicht, siehe PM) mit dem Ergebnis Deines Overrides. Ich tu mir auch ein wenig schwer, denn ich weiss nicht, was das gewünschte Ziel ist. Mit Deinem Code seh ich zwar jetzt hochgestellte Bemassungszahlen, aber nicht, ob das gemäß Deinem Wunsch ist oder nicht. - alfred - ------------------ www.hollaus.at |
Ex-Mitglied
|
erstellt am: 20. Mrz. 2010 19:12 <-- editieren / zitieren -->
Hi, dann auch noch das gesamte Projekt samt kompilierter dll in Debug-Verzeichnis - alfred - ------------------ www.hollaus.at |
RoSiNiNo Mitglied Konstrukteur
Beiträge: 1126 Registriert: 09.10.2002 Revit Structure 2011 Acad 2011-deutsch, Express Tools 3ds Max 2011 Win 7-Professional HP Workstation Z400, 6GB GeForce GTX 470
|
erstellt am: 20. Mrz. 2010 20:02 <-- editieren / zitieren --> Unities abgeben:
Genau so soll es aussehen. Danke dir. Jetzt hoffe ich das ich es auch noch so hinbekommen. Zur Erklärung: das Programm setzt einfach die letzte Nachkommazahl als Hochzahl. Bei drei Nachkommastellen wird die letzte Nachkommastelle einfach als Hochzahl geschrieben. Wenn die Zeichnung in Metern ist und der Wert unter 1.00m ist, dann wird der Wert in Zentimetern dargestellt (mit einer Hochzahl als letzte Zahl). Das ganze funktioniert dann ähnlich wie die Bemaßung von Soficad. ------------------ Roland Feletic PCD ZT-GmbH Acad 2010-deutsch Update 1, Express Tools, Advantage Pack 1 3ds Max 2010 WinXP-Professional HP Workstation xw4400, 3GB Quadro FX1500 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 20. Mrz. 2010 20:06 <-- editieren / zitieren -->
Hi, >> Jetzt hoffe ich das ich es auch noch so hinbekommen Oops, Du hast es schon hinbekommen Denn es ist genau Dein Code, unverändert (ausser ev. die Projekteinstellungen, aber da geht nicht wirklich was schief, oder vielleicht die Zeichnungseinstellungen, da ja schon viele Einschränkungen in der Hochstellungs-Function enthalten sind)! - alfred - ------------------ www.hollaus.at |
RoSiNiNo Mitglied Konstrukteur
Beiträge: 1126 Registriert: 09.10.2002 Revit Structure 2011 Acad 2011-deutsch, Express Tools 3ds Max 2011 Win 7-Professional HP Workstation Z400, 6GB GeForce GTX 470
|
erstellt am: 20. Mrz. 2010 21:47 <-- editieren / zitieren --> Unities abgeben:
Ja, bei dir geht er ja. Nur bei mir muss ich das ganze noch zum laufen brringen. Auch deine dll geht bei mir nicht, leider. Ich danke dir für deine Bemühungen. ------------------ Roland Feletic PCD ZT-GmbH Acad 2010-deutsch Update 1, Express Tools, Advantage Pack 1 3ds Max 2010 WinXP-Professional HP Workstation xw4400, 3GB Quadro FX1500 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RoSiNiNo Mitglied Konstrukteur
Beiträge: 1126 Registriert: 09.10.2002 Revit Structure 2011 Acad 2011-deutsch, Express Tools 3ds Max 2011 Win 7-Professional HP Workstation Z400, 6GB GeForce GTX 470
|
erstellt am: 22. Mrz. 2010 08:46 <-- editieren / zitieren --> Unities abgeben:
Falls es jemand anderen interessiert. Anscheinend funktioniert das Ganze nur bei Bemaßungen die nicht Beschriftungsobjekte sind. Vielleicht kommt ja einer von euch dahinter wie es bei diesen machbar wäre. ------------------ Roland Feletic PCD ZT-GmbH Acad 2010-deutsch Update 1, Express Tools, Advantage Pack 1 3ds Max 2010 WinXP-Professional HP Workstation xw4400, 3GB Quadro FX1500 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 22. Mrz. 2010 11:34 <-- editieren / zitieren -->
Hi, vielleich hilft >>>dieses<<< weiter, da war auch die Einstellung der 'Beschriftung' das auslösende Problem. - alfred - ------------------ www.hollaus.at |
RoSiNiNo Mitglied Konstrukteur
Beiträge: 1126 Registriert: 09.10.2002 Revit Structure 2011 Acad 2011-deutsch, Express Tools 3ds Max 2011 Win 7-Professional HP Workstation Z400, 6GB GeForce GTX 470
|
erstellt am: 22. Mrz. 2010 14:31 <-- editieren / zitieren --> Unities abgeben:
Das könnte sein. Ich habe es allerdings auch einmal mit DeepClone versucht. Damit sollte doch alles, auch die "Beschriftung" mitkopiert werden, oder. Ich werde es trotzdem einmal testen. Danke erst mal. ------------------ Roland Feletic PCD ZT-GmbH Acad 2010-deutsch Update 1, Express Tools, Advantage Pack 1 3ds Max 2010 WinXP-Professional HP Workstation xw4400, 3GB Quadro FX1500 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|