Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Parameter Länge aus zwei Setten nach dem Komma

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:  Parameter Länge aus zwei Setten nach dem Komma (813 mal gelesen)
Berges
Mitglied
Techniker


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

Beiträge: 119
Registriert: 16.08.2001

Catia V5 R24/ Sp1 unter WIN 7

erstellt am: 11. Dez. 2012 09: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

Hallo Zusammen

Ich Frage einen Paremter des Typs Länge mit
Set Laenge1 = partDocument1.Part.Parameters.Item("Laenge")
Aus einem Part ab.

Habe Versucht mit Laenge1 = round (Laenge1,"mm",2) den Wert aus 2 Stellen nach dem Komma zu runden.
Leider geling es mir nicht.

Ich muss noch hinzufügen das der Parameter auch einen glatten Wert z.B. 100mm  haben kann.

Danke schon mal für die Hilfe.

Gruß

Ralf

------------------
KOBUE

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

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 11. Dez. 2012 10:37    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 Berges 10 Unities + Antwort hilfreich

Servus
AFAIR funktioniert die Round-Funktion teilweise nicht so wie dies soll (war zumindest bei R119 so).
Ein Workaround ist den Wert durch eine Division einheitenlos zu machen:
Laenge2 = round(Laenge1/1mm,"",2 )*1mm

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

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

Berges
Mitglied
Techniker


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

Beiträge: 119
Registriert: 16.08.2001

Catia V5 R24/ Sp1 unter WIN 7

erstellt am: 11. Dez. 2012 11:06    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


Bild.JPG

 
Hallo Bernd

Danke für die Antwort

Das hatte ich im Forum schon gefunden.
Leider bekomme ich immer diese Fehlermeldumg

Gruß

Ralf

------------------
KOBUE

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

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 11. Dez. 2012 11: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 Nur für Berges 10 Unities + Antwort hilfreich

Servus
Funktioniert die Formel wenn du diese von Hand erstellst?
Falls ja, poste mal den Code deines CATScripts.

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

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

Berges
Mitglied
Techniker


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

Beiträge: 119
Registriert: 16.08.2001

Catia V5 R24/ Sp1 unter WIN 7

erstellt am: 11. Dez. 2012 11:30    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 Bernd

Anbei mein Script.

Sub CATMain()

Dim productDocument1 As document
Set productDocument1 = CATIA.ActiveDocument
Dim Name As String
Dim Name01 AS String
Dim oParameter As String
Dim oParameterArray()
Dim length1 As Object
Dim length2 As Object
Dim selection1 As selection
Set selection1 = productDocument1.selection
DIM PAName AS String
Dim N As Document
CATIA.DisplayFileAlerts = False

Set filesys = CATIA.FileSystem

N = 1

selection1.Search "CATProductSearch.Part,all"

Dim Imax As Integer
Imax = selection1.Count
ReDim oParameterArray(Imax)

  If Imax > 0 Then

    For I = 1 To Imax

     
Name = selection1.Item(I).Value.ReferenceProduct.Parent.Name


Name01= Left (Name ,9)

            Set documents1 = CATIA.documents

     
Set partDocument1 = documents1.Item(Name)
Set productDocument1 = CATIA.ActiveDocument
        Set product1 = productDocument1.Product
        Set products1 = product1.Products
        Set product2 = selection1.Item(i).Value
   
                   
        On Error Resume Next

     
If Name01 = "AUSWERFER" Then

N = N+1

        Set length1 = partDocument1.Part.Parameters.Item("Ref")
        Set length2 = partDocument1.Part.Parameters.Item("Auswerferlaenge")
     
length2 = round(length2/1mm,"",2 )*1mm

       
 
        If Err = 0 Then
     
            On Error GoTo 0
         
            oParameter = length1.ValueAsString

Zeichenlaenge = LEN (oParameter)

Zeichenlaenge = Zeichenlaenge - 3

Ausgabe1 = Mid (oParameter, 5, Zeichenlaenge)
Ausgabe1 = Replace(Ausgabe1, ".", ",")
Ausgabe2= length2.ValueAsString

product2.PartNumber = "AUSWERFER_"&Ausgabe1&"_L="&Ausgabe2
' product2.name = "DIN912"& "_M"&Ausgabe1&N

'____________________Datei prüfen______________________
Set productDocument1 = CATIA.ActiveDocument
Pfad =  product2.ReferenceProduct.Parent.Path
DateiPart =  product2.ReferenceProduct.Parent.Name
Pfad1  =  product2.ReferenceProduct.Parent.FullName
Datei = Pfad &"\AUSWERFER_"&Ausgabe1&"_L="&Ausgabe2

if CATIA.FileSystem.FileExists(Datei) <> true then
  Dim partDocument1 As Document
Set partDocument1 = documents1.Item(DateiPart)
PartDocument1.SaveAs Datei
Else
Set oPartNeu = oProd.Products.ReplaceComponent(Name, Datei, False)


End If

'_______________________Ende Datei______________

Else         

End If

End If


            On Error GoTo 0


   
    Next

  End If

CATIA.DisplayFileAlerts = True
MsgBox "Auswerfer umbenannt"


Ich möchte den Parameter "Auswerferlaenge" auf 2 Stellen kürzen.

Kann sein das der Script besser sein könnte aber er funktionier bis auf diese eine Funktion.

Gruß

Ralf

------------------
KOBUE

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

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 11. Dez. 2012 11:41    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 Berges 10 Unities + Antwort hilfreich

Servus
Du willst doch eine Formel erstellen, oder willst du nur einmalig beim Makrodurchlauf den Wert runden und korrigieren?
Einmalig müsste es so gehen (ungetestet):
length2.value = round(length1.value,2)
Beispiel für Formeln siehe zB hier

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

[Diese Nachricht wurde von bgrittmann am 11. Dez. 2012 editiert.]

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

Berges
Mitglied
Techniker


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

Beiträge: 119
Registriert: 16.08.2001

Catia V5 R24/ Sp1 unter WIN 7

erstellt am: 11. Dez. 2012 13: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 Bernd

Leider war es das auch nicht.

Ich lese den Wert einmal aus.
Möchte ihn dann runden und erstelle daraus den Dateinamen des Parts.

Gruß

Ralf

------------------
KOBUE

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

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 11. Dez. 2012 13:33    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 Berges 10 Unities + Antwort hilfreich

Servus
Lass dir mal die (Zwischen)Werte in einer Messagebox ausgeben (zb Anfangswert, gerundeter Wert, ...).
zB: MsgBox CStr(length1.value)

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

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

Berges
Mitglied
Techniker


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

Beiträge: 119
Registriert: 16.08.2001

Catia V5 R24/ Sp1 unter WIN 7

erstellt am: 11. Dez. 2012 14:20    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 Bernd

Das habe ich gemacht.
Vor dem runden z.B. 176,256

Nach dem runden mit den von dir angebenden Möglichkeiten ist die Ausgabe lehr.

Liegt es vielleicht daran das der Wert des Parameters durch eine Formel berechnet wird?


Gruß

Ralf

------------------
KOBUE

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

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 11. Dez. 2012 16:41    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 Berges 10 Unities + Antwort hilfreich

Servus
Der Code sieht mir aber sehr zusammen kopiert aus. Beim groben überfliegen des Codes zweifle ich daran das der Code überhaupt läuft bzw tut was er soll.
Was willst du nun machen?
Den Parameter im Part ändern? (ggf musst du dann dir Formel dort anpassen) Oder nur den Dateinamen korrigieren (siehe zB hier)? Oder beides?

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

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

Berges
Mitglied
Techniker


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

Beiträge: 119
Registriert: 16.08.2001

Catia V5 R24/ Sp1 unter WIN 7

erstellt am: 11. Dez. 2012 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 Bernd

Der Code ist zusammen kopiert .
Bin eben ein purer Anfänger.

Der Spript durchsucht ein Product nacht Parts mit dem Namen AUSWERFER_01.CATPart/AUSWERFER_02.CATPart u.s.w.

Dan lese ich aus diesem Part den Durchmesser und die Normlänge und die Einbaulänge.

Das Part wird dann unter einem neuen Namen mit der den Angaben gespeichert (AUSWERFER_2x200_L=164,17mm.CATPart).

Das Programm läuft fast ohne Probleme.
Nur wenn ein Auswerfer mit den gleichen Parametern in einem Product zwei mal vorhanden ist stürz der Scrip ab.

Leider ist die Auswerferlänge schon mal mit drei Stellen nach dem Komma.
Das möchte ich gerne auf zwei Stellen runden.

Gruß

Ralf

------------------
KOBUE

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

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 11. Dez. 2012 17:40    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 Berges 10 Unities + Antwort hilfreich

Servus
Dann sollte es reichen folgende Zeile zu ändern:
Code:
Ausgabe2= CStr(Round(length1.Value, 2) & "mm")

EDIT: die andere Zeile um Runden kann dann entfallen.

Gruß
Bernd

PS: Musst du wirklich die Parts in der Baugruppe ersetzen? AFAR wird bei SaveAs die Referenz in der geöffneten Baugruppe automatisch ersetzt. (ggf mal testen)

------------------
Warum einfach, wenn es auch kompliziert geht.

[Diese Nachricht wurde von bgrittmann am 11. Dez. 2012 editiert.]

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

Berges
Mitglied
Techniker


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

Beiträge: 119
Registriert: 16.08.2001

Catia V5 R24/ Sp1 unter WIN 7

erstellt am: 12. Dez. 2012 09:44    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 Bernd

Danke für deine Hilfe.

Jetzt funktioniert es super.

Gruß

Ralf

------------------
KOBUE

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