Autor
|
Thema: Property Density (Dichte) ändern (2540 mal gelesen)
|
hawu Mitglied Auszubildender
Beiträge: 53 Registriert: 09.09.2007
|
erstellt am: 09. Jan. 2009 10:55 <-- editieren / zitieren --> Unities abgeben:
Hallo, mit folgendem Makro lässt dich die Dichte eines geöffneten Parts auslesen. '**************************************** Sub CATMain()
Set oPart = CATIA.ActiveDocument Set partRoot = oPart.Part MsgBox "The density is " & partRoot.Density End Sub '******************************************* Aber wie kann man den Wert für die Eigenschaft Dichte ändern? Ich habs mit: NewInertia.Density = 10 versucht. Das gab aber ein Fehlermeldung. Viele Grüsse HaWu
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
denyo_1 Moderator Manager
Beiträge: 2506 Registriert: 10.08.2005 HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3
|
erstellt am: 09. Jan. 2009 11:47 <-- editieren / zitieren --> Unities abgeben: Nur für hawu
Hallo HaWu, die Eigenschaft der Dichte eines Parts ist eine READ-ONLY Eigenschaft und lässt sich deshab nicht ändern. Falls du aber eine Messung mit einer anderen Dichte durchführen willst dann schau dir mal mein Code an. Mit der Variablen newDensity kannst du weiterrechnen falls dies gewünscht wird. Code:
Sub CATMain() Dim oPart As Document Dim partRoot As Part Dim oDensity As Double Dim newDensity As Double Dim togo As Boolean togo = False Do On Error Resume Next newDensity = InputBox("Bitte geben Sie die neue Dichte an (Double!)", "new density", 1) If Err.Number <> 0 Then On Error GoTo 0 Box = MsgBox("Bitte geben Sie nur eine Gleitkommazahl ein!", vbCritical + vbOKCancel, "Falsche Eingabe") If Box = vbCancel Then Box = MsgBox("Sie haben die Eingabe abgebrochen" + Chr(10) + "Das Makro wird beendet", vbInformation + vbOKOnly, "Abbruch duch Anwender") Else togo = False End If Else togo = True End If Loop Until togo = True Set oPart = CATIA.ActiveDocument Set SPAWorkbench = oPart.GetWorkbench("SPAWorkbench") Set partRoot = oPart.Part Set oInertias = SPAWorkbench.Inertias Set oInertia = oInertias.Add(partRoot) oDensity = oInertia.Density oInertia.Density = newDensity MsgBox "The density is " & newDensity End Sub
------------------ MFG Daniel Die KATJA ist halt doch nur ne zickige Französin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
hawu Mitglied Auszubildender
Beiträge: 53 Registriert: 09.09.2007
|
erstellt am: 09. Jan. 2009 12:16 <-- editieren / zitieren --> Unities abgeben:
Hallo Denyo wo wird der Wert gespeichert. "Nur" innerhalb der Variabeln? In den PartProperties ist eine Registrierkarte Masse und dort ist das Feld Dichte. Wenn man sich mit dem obigem Makro, die Dichte Anzeigen lässt, wird die Dichte angezeigt, die dem Feld Dichte in der Registrierkarte Masse ("siehe Anhang") steht. Ich habe gehofft diesen Wert per makro irgenwie verändern zu können.
wenn ich mit deinem makro den wert für density neu setze, und ihn mir mit obigen makro wieder anzeigen lasse, wird immer noch der in den properties steht angezeigt welcher sich auch nicht verändert hat.. grüsse Harry
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
denyo_1 Moderator Manager
Beiträge: 2506 Registriert: 10.08.2005 HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3
|
erstellt am: 09. Jan. 2009 12:23 <-- editieren / zitieren --> Unities abgeben: Nur für hawu
Hallo hawu, ja diesen Wert in dem Feld Density (in den Part Eigenschaften) kann man definitiv NICHT ändern da er nur READ-ONLY ist (daher kannst du die Masse auch nicht ändern). Du muss dir sozusagen einen zweiten Parameter "Dichte" erzeugen mit dem du die neue Masse ausrechnest. ------------------ MFG Daniel Die KATJA ist halt doch nur ne zickige Französin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
hawu Mitglied Auszubildender
Beiträge: 53 Registriert: 09.09.2007
|
erstellt am: 09. Jan. 2009 12:37 <-- editieren / zitieren --> Unities abgeben:
|
ogard1 Mitglied Verfahrenstechniker
Beiträge: 442 Registriert: 12.09.2004 R19 SP2
|
erstellt am: 11. Jan. 2009 15:31 <-- editieren / zitieren --> Unities abgeben: Nur für hawu
|
denyo_1 Moderator Manager
Beiträge: 2506 Registriert: 10.08.2005 HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3
|
erstellt am: 12. Jan. 2009 08:41 <-- editieren / zitieren --> Unities abgeben: Nur für hawu
Zitat: Original erstellt von ogard1: Hallo Daniel, wehre es nicht möglich die Materialeigenschaften auslesen und über den Parameter SAMDensity zu verändern.anlysisMaterial.PutValue "SAMDensity", "20" Gruß
Hallo, ja das geht schon aber NUR wenn du dem Teil auch ein Material zugeordnet hat. Außerdem änderst du damit ständig die Dichte in deinem Material und somit müsstest du für jede "neue" Dichte auch ein eigenes Material definieren. Die Dichte in den Parteigenschaften (die standartmäßig 1000kg_m3 ist) kannst du damit nicht ändern, da diese Eigenschaft read-only ist. ------------------ MFG Daniel Die KATJA ist halt doch nur ne zickige Französin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 12. Jan. 2009 09:17 <-- editieren / zitieren --> Unities abgeben: Nur für hawu
Servus Jetzt misch ich mich auch mal ein Meiner Ansicht nach sollte die Gesamtmasse nicht über einen Parameter "Dichte" berechnet werden, denn sonst kann man andere Funktionen, wie Schwerpunktsbestimmung und Trägheitmomente nicht verwenden werden können. IMHO sollte ein Skript die Baugruppe rekursiv durchgehen, und bei jedem Part/Körper (wenn dieser nicht mit boole'schen Operationen "verbaut" ist) ohne Material eine Warung ausgeben bzw. direkt auffordern, ein Material auszuwählen. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
denyo_1 Moderator Manager
Beiträge: 2506 Registriert: 10.08.2005 HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3
|
erstellt am: 12. Jan. 2009 10:00 <-- editieren / zitieren --> Unities abgeben: Nur für hawu
Hallo Bernd, das sehe ich auch so aber ich denke Hawu benötigst das Script nur um eine schnelle Aussage zum Gewicht (z.B. für den Einkauf) zu machen. Sind nun in der firma nicht alle Materialien (die verbaut wurden) vorhanden muss man sie nicht erst erstellen um das Gewicht zu bestimmen. ------------------ MFG Daniel Die KATJA ist halt doch nur ne zickige Französin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |