Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  AutoCAD VBA
  Zahlen am Komma ausrichten

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Zahlen am Komma ausrichten (1292 mal gelesen)
Gemuetsmensch
Mitglied



Sehen Sie sich das Profil von Gemuetsmensch an!   Senden Sie eine Private Message an Gemuetsmensch  Schreiben Sie einen Gästebucheintrag für Gemuetsmensch

Beiträge: 18
Registriert: 04.08.2010

BricsCAD 9

erstellt am: 28. Aug. 2010 17:14    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo ihr alle,

kann man per VBA eingefügte Zahlen am Komma ausrichten? Ich finde kein passendes "Alignment".

Danke schon mal

der Gemütsmensch

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP


Ex-Mitglied

erstellt am: 28. Aug. 2010 17:37    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

vorgabemäßig nein, es gibt in AutoCAD keine Ausrichtung nach Dezimalpunkt.
Umweg wäre, die Textlänge des Textobjekts mit und ohne Dezimalstellen zu ermitteln und dann eben den Einfügepunkt entsprechend zu schieben.

- alfred -

------------------
www.hollaus.at

Gemuetsmensch
Mitglied



Sehen Sie sich das Profil von Gemuetsmensch an!   Senden Sie eine Private Message an Gemuetsmensch  Schreiben Sie einen Gästebucheintrag für Gemuetsmensch

Beiträge: 18
Registriert: 04.08.2010

BricsCAD 9

erstellt am: 30. Aug. 2010 15:12    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Alfred,

Danke, das klingt gut. Mit Fix() den Ganzzahl-Anteil finden ist ja kein Problem, doch was meinst Du mit "Länge", die Anzahl Stellen der Zahl?

Bei meinem Versuch zur Stellenermittlung bin ich auf ein mir unerklärliches Phänomen gestoßen:

Code:
Sub Logarithmus_und_Stellenzahl()
Dim Zahl As Double, Ergebnis As Double, Stellen As Integer
Zahl = 100
Ergebnis = Log(Zahl) / Log(10#)
Debug.Print Ergebnis, Fix(Ergebnis), Int(Ergebnis)
Stellen = Fix(Ergebnis) + 1
Debug.Print Stellen
End Sub
Das Ergebnis 2 wird dabei sowohl durch Fix als auch Int zu 1!! Gebe ich jedoch direkt ein Fix(2), ergibt dies richtigerweise 2. Hängt das mit der internen Rechengenauigkeit zusammen?

Oder meinst Du mit "Textlänge" die x-Ausdehnung der Zahl in der Zeichnung? Wie kann man denn die ermitteln? Und woher bekomme ich die Breite EINES Zeichens??

Irgendwie sitze ich wohl noch auf der Leitung.

Mit freundlichen Grüßen

der Gemütsmensch

[Diese Nachricht wurde von Gemuetsmensch am 30. Aug. 2010 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP


Ex-Mitglied

erstellt am: 30. Aug. 2010 15:30    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

>> Oder meinst Du mit "Textlänge" die x-Ausdehnung der Zahl in der Zeichnung? Wie kann man denn die ermitteln?

Wenn der Text waagrecht steht, dann kannst Du mit TextObj.getBoundingBox(MinPnt, MaxPnt) Dir die Extents herausrechnen lassen, und dann
Abs(MaxPnt(0) - MinPnt(0))
ergbibt dann die  Textlänge in AutoCAD-Einheiten)


>> Und woher bekomme ich die Breite EINES Zeichens??

Mach Dir halt temporär ein AcadText-Objekt, schreib das Zeichen rein und messe es dann nach obigem Weg nach.
ABER: Du kannst bei Proportionalschrift nicht einfach einzelne Zeichen-X-Größen zusammenzählen, da damit die Unterschneidungen (Kerning) nicht berücksichtigt wäre.


Das mit FIX(... verstehe ich nicht (z.B. was 'Ergebnis2' sein soll). Bei mir ergibt diese Formel
fix(log(100)/log(10))
nach Auswertung den Wert 2

- alfred -

------------------
www.hollaus.at

Gemuetsmensch
Mitglied



Sehen Sie sich das Profil von Gemuetsmensch an!   Senden Sie eine Private Message an Gemuetsmensch  Schreiben Sie einen Gästebucheintrag für Gemuetsmensch

Beiträge: 18
Registriert: 04.08.2010

BricsCAD 9

erstellt am: 30. Aug. 2010 23:01    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Alfred,

einfach Klasse, was Du alles weißt! "getBoundingBox" - da soll einer drauf kommen, Danke!!! Ich verwende es nun ohne die Klammern, so liefert es ohne Umwege die gesuchten "Eckdaten" des Textobjektes.

Zitat:
Das mit FIX(... verstehe ich nicht (z.B. was 'Ergebnis2' sein soll)
Nein,  nicht Ergebnis2 sondern des Ergebnis "2", also den dekadischen Logarithmus von 100 in meinem Code. Und wenn Du diesen Code einfach kopierst, müßtest auch Du im Direktfenster
2            1            1
stehen haben, und das begreife ich eben nicht, wobei auch bei mir
Debug.Print Fix(Log(100) / Log(10))
richtig 2 liefert!

Jetzt habe ich die Deklaration von "Ergebnis" von Double auf Single geändert, plötzlich stimmen die Zahlen!?! Welche ein Mysterium...

Kannst Du das erklären?

Achja: Bitte nicht auslachen, aber wie komme ich denn von den AutoCAD-Einheiten auf meine Meter?  (Vielleicht liegt das jetzt aber auch nur an der Uhrzeit oder am Rotwein)

Viele Grüße

Udo

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP


Ex-Mitglied

erstellt am: 30. Aug. 2010 23:11    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

Deinen Code ausgeführt ergibt bei mir:
2  2  2
3

Ich bin aber im AutoCAD und nicht in Bricscad, ev. ist das der Unterschied.

Double kannst (und imho sollst) Du auch so belassen.  


>> Vielleicht liegt das jetzt aber auch nur an der Uhrzeit oder am Rotwein

Schon, ja, ... Alkohol kann den räumlichen Wahrnehmungssinn verändern  

Mit UNITS kannst Du einstellen, wie Du Dir die AutoCAD-Einheiten vorstellst (im wahrsten Sinne des Wortes). Denn zeichnest Du eine Linie mit 1 Länge, dann weißt nur Du, dass es in diesem Fall Meter oder Millimeter sind.

Mach ev. mal folgendes (fett gedrucktes ist die Eingabe):

Befehl: _setvar<ENTER>
Variablenname eingeben oder [?]: ?<ENTER>
Aufzulistende Variable(n) eingeben <*>: *UNITS*<ENTER>

...dann siehst Du alle Variable, die mit UNITS zu tun haben.

- alfred -

------------------
www.hollaus.at

[Diese Nachricht wurde von a.n. am 30. Aug. 2010 editiert.]

Gemuetsmensch
Mitglied



Sehen Sie sich das Profil von Gemuetsmensch an!   Senden Sie eine Private Message an Gemuetsmensch  Schreiben Sie einen Gästebucheintrag für Gemuetsmensch

Beiträge: 18
Registriert: 04.08.2010

BricsCAD 9

erstellt am: 01. Sep. 2010 22:03    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Alfred,

das FIX- und INT- Problem scheint wirklich am BricsCAD zu liegen.

Ich habe mir geholfen, indem ich den Ganzzahl- Anteil in einen  String umwandle und die Textlänge ermittle.

Vielen Dank, auch für die UNITS - Erklärung und die Auflistung. Schön, wie einem in diesem Forum geholfen wird!

Viele Grüße

Udo

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz