Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Nachkommastellen runden, Einheiten ausblenden

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
Autor Thema:  Nachkommastellen runden, Einheiten ausblenden (2312 mal gelesen)
Catia100
Mitglied
Selbstständig

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

Beiträge: 9
Registriert: 26.11.2006

erstellt am: 03. Feb. 2007 21:02    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,

ich möchte aus einer Zeichnung auf Gewichtsparameter eines Parts zugreifen und verweisen. Im Part habe ich mir einen Parameter Masse erzeugt welchen ich auch einem Drawing-Text zuweisen kann. Mein Problem ist die Angabe der Einheit (kg)welche automatisch im Text erscheint. Um die Zahl einheitslos zu bekommen dachtee ich nun einen Parameter Reele Zahl zu erzeugen, welcher jedoch nur drei Nachkommastellen aufweisen soll.
Frage: Hat jemand eine Idee wie ich dem Parameter Masse die Einheit ausblenden kann?
Wie kann ich einen Einheitslosen Parameter mit nur 3 Nachkommastellen erzeugen?
Bin ich vielleicht total auf dem falschen Weg?

Vielen Dank für eure Hilfe

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

startrek
Mitglied
Architekt


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

Beiträge: 1361
Registriert: 13.02.2003

Win7, ACA2010

erstellt am: 04. Feb. 2007 11:51    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 Nur für Catia100 10 Unities + Antwort hilfreich

Hallo,

schau' mal, ob dir sowas vielleicht weiterhilft:

Code:

Sub test()
    Dim re As Object, reMatch As Object
    Dim s As String, i%
    Set re = CreateObject("vbscript.regexp")
    re.Global = 1
    re.Pattern = "\d+,?\d*"
    s = "25,12345kg; 30000,0127 kg; 0,1kg; 200,5789kg"
    Set reMatch = re.Execute(s)
    For i = 0 To reMatch.Count - 1
        Debug.Print CDbl(Round(reMatch(i), 3))
    Next
End Sub

Gruss Nancy

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

Catia100
Mitglied
Selbstständig

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

Beiträge: 9
Registriert: 26.11.2006

erstellt am: 04. Feb. 2007 13:48    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,

vielen Dank für deine schnelle Antwort. Ich muß gestehen das ich erst anfange mich mit dem Thema Makro zu befassen. Gibt es vielleicht auch eine Methode die Nachkommastellen im Formeleditor zu reduzieren?

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

startrek
Mitglied
Architekt


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

Beiträge: 1361
Registriert: 13.02.2003

Win7, ACA2010

erstellt am: 04. Feb. 2007 14:07    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 Nur für Catia100 10 Unities + Antwort hilfreich

Hello again,

sorry, ich hab von Catia und dessen Editoren ungefähr soviel Ahnung wie vom Fliegen eines Spaceshuttles.;-)

Meine Antwort bezog sich nur auf deinen Parameter/Variable die ein Drawing-Text (also ein String?) ist
und wie du da die Zahlen extrahieren könntest, also nur als allgemeine Stringbearbeitung.

Was Catia-intern machbar ist ... - da müssen andre ran;-)

Grüsse Nancy

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

startrek
Mitglied
Architekt


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

Beiträge: 1361
Registriert: 13.02.2003

erstellt am: 04. Feb. 2007 15:38    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 Nur für Catia100 10 Unities + Antwort hilfreich

Hallo,

hier nochmal etwas kommentiert, am einfachsten wäre wohl aber
du nimmt die Left() Variante, wenn nix andres kommt.

CUSee You Nancy
--

Code:

Sub test1()
    Dim re As Object, s As String, retval As String
    Set re = CreateObject("vbscript.regexp")
    re.Global = 1
    '**************************
    '\d+ == ein oder mehrere digits
    ',? == ein oder kein Komma
    '\d* == kein oder mehrere Digits
    re.Pattern = "(\d+,?\d*).*"
   
    s = "25,123799kg" 'dein Drawing-Text
 
    retval = Round(CDbl(re.Replace(s, "$1")), 3)
    MsgBox retval, , "mit RegExp"
   
    '~~~~~~~~~~~~~~~~~~~~~~~~~~
    'oder ganz simpel, wobei ich deinen String nicht kenne
    retval = Round(CDbl(Left(s, Len(s) - 2)), 3)
    MsgBox retval, , "ohne RegExp"
End Sub

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

Catia100
Mitglied
Selbstständig

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

Beiträge: 9
Registriert: 26.11.2006

erstellt am: 04. Feb. 2007 19:47    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

Hey,
super vielen Dank für Deinen Einsatz. Ich werde die Variante probieren sobald ich deuten kann was Du mir vorschlägst.(Bin noch absolut Ahnungslos beim Lesen und Schreiben von Makros.)

Vielen Dank

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


Ex-Mitglied



Sehen Sie sich das Profil von  an!

Beiträge: 4755
Registriert: 27.09.2000

Dell precision M4300, 4GB Arbeitsspeicher
NVidia FX360M
Windows XP professional SP3
CATIA V5 R16SP9, R17SP8, R18SP8, R19SP4
Adobe Acrobat 8
Linux: Ubuntu 8.04LTS

erstellt am: 04. Feb. 2007 20:27    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 Nur für Catia100 10 Unities + Antwort hilfreich

Hallo zusammen,

@catia100:
In startreks Posting steckt noch eine Besonderheit, von der ich nicht weiß, ob sie überhaupt auf allen Betriebssystemversionen von V5 funktioniert: Ein Regulärer Ausdruck.
Du findest ihn hier:
 

Zitat:

re.Pattern = "\d+,?\d*"


Das Pattern bedeutet:
Ziffer ("\d"]
mindestens eine Wiederholung ("+")
ein Komma (",")
eine oder keine Wiederholung ("?")
Ziffer ("\d")
beliebige Anzahl Wiederholungen ("*")

Ich würde ihn noch etwas anpassen, da statt des Komma auch ein Punkt als Dezimaltrenner auftreten kann - je nach Sprachumgebung.
Die Zeile lautet dann

Code:

re.Pattern="\d+[,\.]?\d*"

Näheres zu Regulären Ausdrücken findest du z.B. hier.

Viele Grüße,

CEROG

------------------
Inoffizielle CATIA-HIlfeseite
CATIA-FAQ
Inoffizielle Linux-Hilfeseite

http://www.cad-gaenssler.de

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

startrek
Mitglied
Architekt


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

Beiträge: 1361
Registriert: 13.02.2003

erstellt am: 04. Feb. 2007 21:36    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 Nur für Catia100 10 Unities + Antwort hilfreich

Hallo CEROG,

ich weiss es auch nicht, aber ich vermute mal, dass alle Programme
die VB[A] unterstützen auch die M$ VBScript RegExp kennen [müssten], als *.dll.

@catia100: du fährst glaube besser mit Left(), setz mal ein F1 auf das
Schlüsselwort ab, es ist nicht wirklich schwer, sich den string zurechtzubiegen;-)

Aber Offtopic, zurück zu Dir Roland:
Ich finde du hast das ganz gut rübergebracht,
irgendwie fände ich so ein kleines RE-Forum nicht ganz schlecht.
Mir ist klar, dass aufgrund der verschiedenen Dialekte das nicht so einfach ist,
ebenso die Zuordnung eines solchen Forums auf cad.de.
Aber einen gewissen Reiz hätte es .... - ich wöllt gerne mal wissen,
wie Du oder andere das sehen würdet.

lg Nancy

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


Ex-Mitglied



Sehen Sie sich das Profil von  an!

Beiträge: 4755
Registriert: 27.09.2000

Dell precision M4300, 4GB Arbeitsspeicher
NVidia FX360M
Windows XP professional SP3
CATIA V5 R16SP9, R17SP8, R18SP8, R19SP4
Adobe Acrobat 8
Linux: Ubuntu 8.04LTS

erstellt am: 05. Feb. 2007 05:50    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 Nur für Catia100 10 Unities + Antwort hilfreich

Hallo zusammen,

@Startrek:
Dassault hat VB auf die 4 Unix-Plattformen (AIX, HP-UX, IRIX und Solaris) portiert, auf denen CATIA läuft. Ich weiß halt nicht, ob sie die Regulären Ausdrücke mit portiert haben...
Auf der anderen Seite verwendet der Q-Checker (das Datenqualitätschecktool) für einige Tests auch regläre Ausdrücke. Das müßte ich mir noch genau anschauen.

Reguläre Ausdrücke sind sicher ein Forum wert. Der Artikel auf 42.cad.de, auf den ich verlinkt habe, ist ja nur sehr oberflächlich. Bei OReilly gibt es ein Buch zu dem Thema - naja, 2.
Die Verwendungsmöglichkeiten sind vielfältig - Spamfilterung, Überprufung auf Einhaltung von Namenskonventionen, Überprüfung von Eingaben in Webformularen usw...
Nancy, schickt Albert einfach eine PM, ob er sowas einrichten kann. Eine Modertorin dazu wüßte ich auch schon.

Viele Grüße,

CEROG

------------------
Inoffizielle CATIA-HIlfeseite
CATIA-FAQ
Inoffizielle Linux-Hilfeseite

http://www.cad-gaenssler.de

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