Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Problem mit Body.Value.Name

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:  Problem mit Body.Value.Name (763 mal gelesen)
hawu
Mitglied
Auszubildender


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

Beiträge: 53
Registriert: 09.09.2007

erstellt am: 06. Jan. 2009 15:10    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,

habe ein Makro, das 2 Parameter Dichte und Masse erstellt.

Mit Dichte * smartValue(`Hauptkörper`) wird die Masse berechnet.

siehe hier:
http://ww3.cad.de/foren/ubb/Forum137/HTML/001000.shtml#000002

möchte, dass der man den Körper auswählt welcher dann bei

smartValue verwendet wird.

Dazu lese ich den Namen des Bodys mit selectelemt3 und

myname = selecten.value.name aus.

das auslesen des namens funktioniert lt. msgbox.

versuche ich jetzt smartvalue(`myname`) wird die masse nicht berechnet.

gebe ich im skript den namen des ausgewählten körpers von hand ein.

also zb. smartvalue(`Hauptkörper`)

dann wird die masse berechnet.

Warum funktionrt es nicht, wenn ich die Variable bei smartValue angebe?


'******************************
Language="VBSCRIPT"

Sub CATMain()

Set p1 = CATIA.ActiveDocument

Set part1 = p1.Part

'----------------Body auswählen

Set Koerper = Part1.Bodies

Dim iSel, iStatus, sFilter(0)

set iSel = Catia.ActiveDocument.Selection

sFilter(0) = "Body"

iStatus = iSel.SelectElement3(sFilter, "Part selektieren / ESC bei keine Auswahl", False, CATMultiSelTriggWhenSelPerf, False)

If iStatus = "Normal" Then

Else
   
MsgBox "Abbruch(Cancel) der Auswahl", vbOKOnly + vbCritical, "  Abbruch  "

Exit Sub

End If

myName = p1.Selection.Item(1).value.name

msgbox myname, 0, " BodyName"

'----------------Parameter erzeugen

Set parameters1 = Part1.Parameters

Set dimension1 = parameters1.CreateDimension("Masse.3", "MASS", 0.000000)

dimension1.Rename "userMasse"

Set realParam1 = parameters1.CreateReal("`Reelle Zahl.1`", 0.000000)

realParam1.Rename "dichte"


'-----------------Dichte eingeben mit komma nicht mit punkt

dense = inputbox("Wert mit Komma nicht mit Punkt eingeben! " ," Dichte eingeben in KG/m3")

'-------------------------------------------------------

realParam1.Value = dense

Set relations1 = part1.Relations

Set formula1 = relations1.CreateFormula("Formel.10", "", dimension1, "smartVolume(`Hauptkörper`)*10000*dichte")

part1.Update

End Sub
'****************************


Warum funktionrt es nicht, wenn ich die Variable angebe?


Viele Grüsse HaWu


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: 06. Jan. 2009 15:59    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 hawu 10 Unities + Antwort hilfreich

Servus
Wie hast du denn de Variable angegeben?
Ich denke dass ach was mit den Einheiten der Formel nicht ganz passt (es fehlt: "*kg / m3")

Gruß
Bernd

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

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

RSchulz
Moderator²
Head of CAD, Content & Collaboration / IT-Manager



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

Beiträge: 5541
Registriert: 12.04.2007

@Work
Lenovo P510
Xeon E5-1630v4
64GB DDR4
Quadro P2000
256GB PCIe SSD
512GB SSD
SmarTeam V5-6 R2016 Sp04
CATIA V5-6 R2016 Sp05
E3.Series V2019
Altium Designer/Concord 19
Win 10 Pro x64

erstellt am: 06. Jan. 2009 16: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 Nur für hawu 10 Unities + Antwort hilfreich

Hallo,
du hast die Formel in Hochkomma und somit wird sie als reiner Text interpretiert.

Falsch
Set formula1 = relations1.CreateFormula("Formel.10", "", dimension1, "smartVolume(`myname`)*10000*dichte")

Richtig
Set formula1 = relations1.CreateFormula("Formel.10", "", dimension1, "smartVolume(`" & myname & "`)*10000*dichte")

Soweit ich weis müsste es so funktionieren. Ich konnte es aber nicht ausprobieren.

------------------
MFG
Rick Schulz


Konfuzius sprach: "Wer sich das Alte noch einmal vor Augen führt, um das Neue zu verstehen, der kann anderen ein Lehrer sein."

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: 06. Jan. 2009 16:13    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 hawu 10 Unities + Antwort hilfreich

Servus
Ich hab es grad probiert. Mit richtigen Einheiten:
Set formula1 = relations1.CreateFormula("Formel.10", "", dimension1, "smartVolume(`"& myname & "`)*dichte *1kg / 1m3")
Oder gleich den Parameter dichte mit der richtigen Einheit versehen.

Gruß
Bernd

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

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

hawu
Mitglied
Auszubildender


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

Beiträge: 53
Registriert: 09.09.2007

erstellt am: 07. Jan. 2009 07:26    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

moin moin,

so hat es funktioniert danke.


Viele grüsse harry

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

hawu
Mitglied
Auszubildender


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

Beiträge: 53
Registriert: 09.09.2007

erstellt am: 07. Jan. 2009 07: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

morgen,

@bgritmann:

Zitat:
Oder gleich den Parameter dichte mit der richtigen Einheit versehen.

meinst du in der zeile:

Set realParam1 = parameters1.CreateReal("`Reelle Zahl.1`", 0.000000)?


Die Einheit musste ich bei mir mit 1kg_m3 angeben, damit die masse berechnet wird (R16 SP5).

Viele Grüsse

Harry

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: 07. Jan. 2009 07: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 Nur für hawu 10 Unities + Antwort hilfreich

Servus
Mit dieser Zeile wird ein Parameter des Typs "Dichte" erzeugt (gleich mit angepasstem Namen):
Code:
Set Dichte = parameters1.CreateDimension ("Dichte", "DENSITY",  0)

Gruß
Bernd

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

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