| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte | | | | PNY WIRD VON NVIDIA ZUM HÄNDLER DES JAHRES GEWÄHLT, eine Pressemitteilung
|
Autor
|
Thema: Absolutbetrag einer Fläche (800 mal gelesen)
|
mOfl Mitglied
Beiträge: 22 Registriert: 25.09.2010
|
erstellt am: 16. Okt. 2010 00:45 <-- editieren / zitieren --> Unities abgeben:
Hallo, die Odyssee geht weiter obwohl die Flächenermittlung laut Google ein heißes Thema zu sein scheint, habe ich irgendwie keinen anständigen Weg gefunden, an die Flächen meiner MPolygone zu kommen. Auf Through the Interface habe ich dann ein paar interessante Einträge über Fields gelesen und bin zu folgendem Ergebnis gekommen: Code: MText text = new MText(); text.SetContentsRtf("%<\\AcObjProp Object(%<\\_ObjId " + id + ">%).Area \\f \"%lu2%pr2\">%");
Das klappt im Prinzip auch, nur leider sind alle Flächen negativ. Ich denke, das liegt an der verkehrten Richtung der Punkte o.ä.. Ich würde jetzt gerne den Absolutbetrag dieses Wertes nehmen oder alternativ einfach eine Überprüfung machen, ob das erste Zeichen des Textes ein "-" ist und das ggf. löschen. Leider funktioniert das aber nicht, weil ich auf den Wert nicht zugreifen kann. text.Contents[0] ist '#', auch im Editor wird die Fläche als "####" angezeigt und erst beim Plotten zum tatsächlichen Flächenwert. Also die Frage: (Wie) kann man den Flächenwert in jedem Fall als positiven Wert auslesen bzw. ihn zur Anzeige positiv machen? Alternativ nehme ich auch gerne einen ganz anderen Ansatz, an die Flächen zu kommen. Nur Lisp bitte nicht, das verstehe ich nicht Ich hoffe, mir kann einer helfen. Gruß mOfl Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Moderator CAD on demand GmbH
Beiträge: 4187 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools
|
erstellt am: 16. Okt. 2010 08:32 <-- editieren / zitieren --> Unities abgeben: Nur für mOfl
Hallo mOfl, Die Anzeige der Feldwerte wird über eine Sysdtemvariable gesteuert. (FIELDEVAL?) Da kannst du einstellen, dass die Aktualisierung z.Bsp auch beim Regenerieren erfolgt. Wenn du das dem Programmaufruf voran stellst, sollte der Text auch auszulesen sein. (soweit die Theorie) Noch nur mal eine Idee, ohne getestet zu haben: Kannst du die Felder nicht so definieren(formatieren), dass diese generell nur einen positiven Wert anzeigen? Grüße Holger ------------------ Holger Brischke CAD on demand GmbH Individuelle Lösungen von Heute auf Morgen. defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mOfl Mitglied
Beiträge: 22 Registriert: 25.09.2010
|
erstellt am: 17. Okt. 2010 21:50 <-- editieren / zitieren --> Unities abgeben:
Hallo Holger, vielen Dank für deine Antwort! Mit FIELDEVAL = 16 (update on regeneration) werden die Flächen nach Regen() im Editor angezeigt. Auslesen lässt sich der Text dann immer noch, aber dein Tipp, das Feld zu formatieren, hat mich auf die richtige Spur gebracht. Nach ein bisschen Tüfteln bin ich auf folgendes Ergebnis gekommen: Code: %<\AcExpr abs(%<\AcObjProp Object(%<\_ObjId 2130131040>%).Area>%) \f "%lu2%pr2">%
Das macht mir den Absolutbetrag und alles funktioniert, wie es soll Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mOfl Mitglied
Beiträge: 22 Registriert: 25.09.2010
|
erstellt am: 17. Okt. 2010 21:51 <-- editieren / zitieren --> Unities abgeben:
|
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|