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
Základy Catia
Ke stažení
Doporučujeme
Pracovní příležitosti
Reklama a kampaně
O fóru
Vznik a historie
Statistiky
Přehledy
Hledat na fóru
Nápověda

Seznam příspěvků uživatele

V tabulce jsou všechny příspěvky uživatele Fojman řazené podle témat. Kliknutím na název téma se zobrazíte celou diskusi.

TémaZaloženoOdpověď
Svary - vložení a editace ve výkresu 20.10. 2014 To jste mne nepotěšil:( Toho jsem se bál. Já bych rád docílil načtení a exportu právě oněch manuálně naklikaných svarů.
 
Svary - vložení a editace ve výkresu 20.10. 2014 Zkouším načítat všechny svary v jednom pohledu, ale výsledky jsou zvláštní a nepředvídatelné, až mám pocit, že příkaz DrawingWeldings nefunguje správně - na začátku vytvořím prázdný pohled. Přidám dejme tomu 5 svarů, spustím makro a to vyhodí hlášku, že v pohledu je 5 svarů. Přidám tedy další tři svary (nebo třeba 2 smažu) do pohledu, spustím makro a to vyhodí počet svarů stále jako 5. Tak vše z pohledu smažu a nechám jen prázdný pohled - znovu spustím a stále zobrazuje počet jako 5... nechápu.


Sub CATMain()

Dim MyView As DrawingView
Set MyView = CATIA.ActiveDocument.Sheets.ActiveSheet.Views.ActiveView
Dim Svary As DrawingWelding
MsgBox ("Počet svarů je " & MyView.Weldings.Count)

End Sub


Napadá mě, zda proměnné z makra nějak nezůstávají po jeho skončení v paměti a při dalším spuštění nějak neovlivňují další běh programu. Jak tedy "refreshnout" stav před dalším spuštěním makra, či donutit Catii aby vytvořila novou kolekci svarů? Nebo kde jdělám chybu? Děkuji
ps: "svarem" mám namysli "welding symbol" na výkresu.
 
Zjisteni souradnic X,Y,Z partu v sestave 15.12. 2013 Nakonec jsem díky vaší pomoci dal vše dohromady a funguje to jak potřebuji. Teď se po čase k makru vracím a chtěl bych ho vylepšit. V současnosti se jedná o jednu velkou proceduru ve které procházím strom v cyklu a u každé instance hned zapisuji její souřadnice do Excelu s tím, že proměnnou "I" z cyklu používám pro určení buňky v Excelu kam se má hodnota zapsat. Rád bych makro upravil tak aby se načítali i souřadnice podsestav a jejich dílů, takže potřebuji rekurzivně procházet sestavu. Problém nastává že když rekurzivně volám proceduru tak se mi proměnná bude opět začínat od 0 a nebude tak pokračovat číslování řádků. Napadá mě využití nějaké globální proměnné se kterou bych počítal kolikrát procedura včetně rekurze proběhla a z toho vycházet pro Excel. Lze to nějak udělat? Nebo existuje lepší způsob?

Zjisteni souradnic X,Y,Z partu v sestave 13.10. 2013 Já už to nechápu - když si kompasem zjistím natočení Partu, ručně přepočtu úhly natočení na složky vektorů a nechám vypsat složky vektorů z Catie tak dostanu u některých složek rozdílné hodnoty:(
Zjisteni souradnic X,Y,Z partu v sestave 13.10. 2013 Tak už mi to skoro i funguje podle mých představ:) Bohužel něco dělám špatně protože v některých případech se mi špatně vypočítají velikosti úhlů z normalizovaných vektorů - buď se úhel liší o Pí nebo má opačné znaménko a já nějak nemůžu přijít čím to je. Zajímavé je, že ve většině případů je to ok, ale při určitém natočení Partu to prostě nefunguje. Postupuji tak, že přes Arcsin prvku (2) pole spočítám úhel natočení podle osy Y. A tento úhel a další prvky pole využiji pro výpočet zbylých úhlů. Jenže někdy je tato složka vektoru záporná a já tím pádem dostanu úhel s opačným znaménkem a tím jsou ovlivněny další výpočty. Čím víc do toho zabřehávám tak tím méně se orientuji a pokud se to snažím vyřešit nějakou podmínkou tak se chyba objeví jinde. Určitě to bude nějaká blbost co jsem přehlédnul.
Zjisteni souradnic X,Y,Z partu v sestave 7.10. 2013 Opět děkuji. Eulerovy úhly - to je ta magie:) Vypadá to, že už se začínám orientovat. Budu se na to muset podívat, už je to nějaký pátek co jsem ze školy. Díky
Zjisteni souradnic X,Y,Z partu v sestave 7.10. 2013 Děkuji za odpověď. Přesně to jsem hledal. Vše funguje podle mých představ, jen jsem narazil na problém, že nevím jak získat informaci o natočení podél os. Dokážu otáčet s Partem podle os, ale rád bych získal stejnou informaci o úhlech jako je u kompasu (tedy natočení podle u, v a w respektive x,y,z) a ještě lépe tuto hodnotu upravovat. Nevím jakým způsobem to zpětně získat z vektorů, protože záleží i na pořadí transformací podle os. Víceméně by mi stačilo načíst prvotní hodnotu jako se zobrazuje u kompasu a tu dále upravovat. Díky za případně nasměrování.
 
drawing overload properties 23.1. 2014 Opravdu nejde ovládat Overload Properties přes makro? Hodilo by se mi elegantně u všech pohledů zrušit řezy přes šrouby a matice, ale evidentně to musím naklikávat ručně... :(
 
Umisteni prvku Text with leader 28.2. 2012 Mnohokrat dekuji za pomoc, funguje to skvele. Jen tam byla chybka u ("SPA Workbench") misto ("SPAWorkbench"), ale to uz opravdu nebyl problem upravit. Bohuzel ted mi to v textu anotacich zobrazuje oznaceni reference tak jak si ho Catie vytvorila. (annotation1.Text.Text = hybridShapePointCoord1.Name). Potreboval bych tam dostat vsude nazev bodu - jeho Feature Name. Bohuzel nevim jakym prikazem tento nazev vyvolam. Prosim o pomoc a jeste jednou dekuji!!!


Sub CATMain()


' selekce

Set oPart = CATIA.ActiveDocument.Part

Set oSelection = CATIA.ActiveDocument.Selection

oSelection.Clear

' uzivatel vybere Set s body

Dim Filter(0)

Filter(0) = "HybridBody"

Status = oSelection.SelectElement2(Filter, "Vyberte Set s body...", False)

' ukonceni pri stisku Esc

If Status = "Cancel" Then

Exit Sub

End If

Set oHybridBody = oSelection.Item(1).Value

oSelection.Clear
oSelection.Add(oHybridBody)

' vyhledame vsechny body ve vybranem setu

oSelection.Search(".Point; in")

' pokud jsme nejaky bod nalezli
If oSelection.Count >= 1 Then

Set oSPAWB = CATIA.ActiveDocument.GetWorkbench("SPAWorkbench")

Dim oCoordinates(2)


' projdeme vsechny nalezene body

For i = 1 To oSelection.Count


' mereni bodu

Set oRef = oPart.CreateReferenceFromObject(oSelection.Item(i).Value)

Set oMeasurable = oSPAWB.GetMeasurable(oRef)

oMeasurable.GetPoint oCoordinates



' v poli oCoordinates jsou souradnice bodu

x = oCoordinates(0)
y = oCoordinates(1)
z = oCoordinates(2)



' anotace
Set annotationSets1 = oPart.AnnotationSets
Set annotationSet1 = annotationSets1.Add("ISO_TRN")
Set hybridBodies1 = oPart.HybridBodies
Set hybridBody1 = hybridBodies1.Item("Importovane body")
Set hybridShapes1 = hybridBody1.HybridShapes
Set hybridShapePointCoord1 = oRef
Set userSurfaces1 = oPart.UserSurfaces
Set userSurface1 = userSurfaces1.Generate(oRef)



Dim bSTR1

bSTR1 = oPart.Name


Set annotationFactory1 = annotationSet1.AnnotationFactory
Set annotation1 = annotationFactory1.CreateEvoluateText(userSurface1,(x-20), (y-40), 0, True)
annotation1.Text.Text = hybridShapePointCoord1.Name 'Tady potrebuju prirazovat nazev bodu



oPart.Update

Next

End If

End Sub