Vítejte !   Přihlášení | Registrace
Hlavní menu
CATIA fórum.cz
Novinky
Seriál CATIA
Obecně o CAD
Novinky ze světa DS
Makra pro CATIA V5
Diskuse
Vytvořit téma
Koncepty
Seznam oblíbených
Soukromé zprávy
Pravidla
Live CHAT
VIP žádost
Základy Catia
Ke stažení
Doporučujeme
Pracovní příležitosti
Reklama a kampaně
O fóru
Nápověda

Hmotnost samostatného Body

Kompletní přehled příspěvků v tématu Hmotnost samostatného Body řazený podle data jejich publikace na fóru.

UživatelPříspěvek
Ing Jan Cinert

Poslat zprávu | Profil
Datum: 31.1. 2010 | Zobrazeno: 4513x
Konfigurace CATIA:

Text dotazu:
Píšeme makro, které by spočetlo hmostnost celé sestavy. Narazili jsme ale na problém, který vzniká, pokud jsou v partech volná body (např. negativy), které nemají nastavený materiál. Je u nich totiž defaultní hustota 1000m^3 a tím pádem to ovlivňuje hmotnost partu. Zatím to řeším tak, že spočtu objem volných body bez materiálu (nebo s Material=none), vynásobím defaultní hustotou a takto získanou hmotnost odečtu od celkové hmotnosti partu. Elegantnější by bylo vytvořit instanci měření InertiaVolume a z ní pak vytáhnou parametr Mass, ale to se mi zatím nedaří.

Jiří Pešek

Poslat zprávu | Profil
[#94] | Publikováno: 01.02. 2010 - 16:07
Ahoj,
jedna z možností je vyhledat podle názvu hustoty
Dim dimension2 As Parameter

jmeno= Bod1.Name&"specified_massKitchen Floor.1.1Density"
Set dimension2 = parameters2.Item(jmeno)

nevím jestli je to co jsi hledal :))
JP
Ing Jan Cinert

Poslat zprávu | Profil
[#113] | Publikováno: 04.02. 2010 - 11:33
Tak na to nakonec Jirka přišel. Funguje to. Zdroj zde...

Sub CATMain()

Dim thePart As Part

Set oPart = CATIA.ActiveDocument.Part
Set oParameters = oPart.Parameters

' On Error Resume Next
For i = 1 To oParameters.Count
oParameter = InStr(2, oParameters.Item(i).Name, "Density")
If oParameter <> 0 Then

hustota = oParameters.Item(i).Value
material = oParameters.Item(i).Name

MsgBox material&"-"& hustota&"kg.m3"
End If
Next
End Sub
Břeťa Doležal

Poslat zprávu | Profil
[#3135] | Publikováno: 03.08. 2012 - 11:49
Uživatel odpovídá na příspěvek #113:


Odpověď na něco staršího, ale třeba to ještě pomůže. Nevím jestli to je ideální řešení, ale mně vyhovuje:
   

Public Function MaterialOfBody(ByVal iBody As Body) As String
'Vrátí název materiálu pro Body
Dim locMaterial As Material = Nothing
Dim locMatManager As MaterialManager
locMatManager = CType(iBody.GetItem("CATMatManagerVBExt"), MaterialManager)
locMatManager.GetMaterialOnBody(iBody, locMaterial)
If locMaterial Is Nothing Then
Return ("NONE")
Else
Return (locMaterial.Name)
End If
End Function 'MaterialOfBody


Když je materiál NONE, tak potom mi je jasné jak s tím dál naložit.
Ing Jan Cinert

Poslat zprávu | Profil
[#3136] | Publikováno: 03.08. 2012 - 12:01
Šikovná funkce. Už jenom napsat celé makro, kterou tu celkovou hmotnost na sestavě spočítá (bez balastních a pomocných Body).
Radovan Kuchař

Poslat zprávu | Profil
[#4272] | Publikováno: 09.11. 2013 - 15:08
Ahoj, tím co jsem si přečetl tvrdíte, že hmotnost uvedená ve vlastnostech v partu je špatná, že to není hmotnost výsledného dílu, i když mám zvolený druh materiálu ? Van
Ing Jan Cinert

Poslat zprávu | Profil
[#4273] | Publikováno: 09.11. 2013 - 15:39
Výsledná hmotnost je součet součinů objemů Body a jejich hustot, matematicky je samozřejmě správně. Jde o to, jak je zadaný materiál. Výchozí hustota se u V5 bere 1000kg/m3 (voda), takže pokud jsou v modelu nějaká pomocná Body, kde není materiál definovaný, bere se tento výchozí a to ovlivňuje hmotnost celého Partu. Stačí to metodicky ošetřit, ale musí se na to dávat pozor.

U modelu, který vytváříte sám, se to tedy dá řešit snadno. Problém je u importovaných modelů, kde geometrie neodpovídá skutečnosti, nebo je model jen z ploch atd. Když potom chcete určit hmotnost a těžiště např. sestavy, musí se to obejít, jinak budou výsledky zkreslené.
Radovan Kuchař

Poslat zprávu | Profil
[#4925] | Publikováno: 03.02. 2015 - 18:51
Dobrý den, dotaz se přesně netýká tohoto tématu. V jednotlivých díleech mám nastavenou hmotnost, ale když z nich udělám sestavu, tak ve vlastnostech sestavy je nesmysl hmotnosti a i ve vlastnostech jednotlivých dílů v dané sestavě. Nemám chybu v nějakém nastavení ? Děkuji
Ing Jan Cinert

Poslat zprávu | Profil
[#4926] | Publikováno: 04.02. 2015 - 09:42
Dobrý den,

co myslíte tím "mám nastavenou" hmotnost? Znamená to že máte přiřazený materiál k součásti?

Pokud má každá součást přiřazený materiál (globálně na partu nebo na každém samostatném Body), pak by měl být výpočet hmotnosti (funkce Measure inertia nebo hodnota Mass v profilové kartě) na sestavě správný.

Hmotnost sestavy se počítá jako součet hmotností všech instancí, kdy hmotnost instance je rovná součtu hmotností samostatných Body. Hmotnost Body se pak určí jak jeho objev * hustota. Hustota se bere z materiálu, který je přiřazen buď k Body nebo globálně na Partu. Pokud je modelu samostatné Body bez materiálu a part nemá přiřazený globální materiál, počítá se s hustotou vody a to pak často způsobuje chybné výsledky.


Uživatel nepřihlášen

Pro zobrazení obsahu stránky / provedení akce (vytvoření nového téma, napsání odpovědi do diskuse apod.) musíte být přihlášeni.