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

Sceny na vykres

UživatelPříspěvek
Viktor Dičér

Poslat zprávu | Profil
Datum: 9.8. 2012 | Zobrazeno: 10759x
Konfigurace CATIA:

Text dotazu:
Dobrý deň,

vedel by mi niekto poradiť kde robím chybu v makre, resp upraviť makro tak aby vkladalo scenu z produktu na vykres?

Sub CATMain()

Dim drawingDocument1 As DrawingDocument
Set drawingDocument1 = CATIA.ActiveDocument

Dim drawingSheets1 As DrawingSheets
Set drawingSheets1 = drawingDocument1.Sheets

Dim drawingSheet1 As DrawingSheet
Set drawingSheet1 = drawingSheets1.Item("Sheet.1")

Dim drawingViews1 As DrawingViews
Set drawingViews1 = drawingSheet1.Views

Dim drawingView1 As DrawingView
Set drawingView1 = drawingViews1.Add("AutomaticNaming")

Dim drawingViewGenerativeLinks1 As DrawingViewGenerativeLinks
Set drawingViewGenerativeLinks1 = drawingView1.GenerativeLinks

Dim drawingViewGenerativeBehavior1 As DrawingViewGenerativeBehavior
Set drawingViewGenerativeBehavior1 = drawingView1.GenerativeBehavior

Dim documents1 As Documents
Set documents1 = CATIA.Documents

Dim productDocument1 As ProductDocument
Set productDocument1 = documents1.Item("zost4.CATProduct")

Dim reference1 As Reference
Set reference1 = productDocument1.GetItem("zost4")

Dim productScenes1 As ProductScenes
Set productScenes1 = reference1.GetTechnologicalObject("ScenesCollection")

Dim productScene1 As ProductScene
Set productScene1 = productScenes1.Item(1)

drawingViewGenerativeLinks1.AddLink (productScene1)

drawingViewGenerativeBehavior1.DefineIsometricView -0.755871, 0.651121, 0.068561, -0.25853, -0.393038, 0.882431

drawingView1.X = 210#
drawingView1.Y = 150#
drawingView1.[Scale] = 1#

Set drawingViewGenerativeBehavior1 = drawingView1.GenerativeBehavior
drawingViewGenerativeBehavior1.Update
End Sub


Ďakujem

Ing Jan Cinert

Poslat zprávu | Profil
[#3170] | Publikováno: 09.08. 2012 - 21:56
Ten začátek vypadá dobře, ale bude to fungovat jen pro konkrétní případ. Aby to fungovalo obecně, musí se tam přidělat výběr scény, na kterou se pohled nalinkuje a nějaké zadávání směru iso pohledu (nebo použít přesný isopohled).

Nelíbí se mi to od místa

drawingView1.X = 210#


konkrétně hodnota 210#!

A potom ty hranaté závorky kolem vlastnosti Scale by tam také nemají co dělat.

Viktor Dičér

Poslat zprávu | Profil
[#3171] | Publikováno: 10.08. 2012 - 06:59
Viem, že to bude fungovať iba pre jeden prípad. problém je v tom, že mi to ani pre ten konkrétny prípad neurobí a označuje mi chybu pri tomto riadku :
Set productScenes1 = reference1.GetTechnologicalObject("ScenesCollection")


Toto konkrétne makro som urobil pomocou "Start Recording". S písaním makier iba začínam, vedeli ste mi nejak vysvetliť prečo mi ten riadok označuje za chybný?

Ďakujem
Ing Jan Cinert

Poslat zprávu | Profil
[#3172] | Publikováno: 10.08. 2012 - 09:24
Problém bude v tom, že se používá objekt reference1. Podle kódu se jasně bere objekt typu Product (konkrétně zost4). U objektu typu reference totiž nebude existovat metoda GetTechnological Object, proto ta chyba.

Zkuste místo reference1 As Reference použít Product1 As Product
Viktor Dičér

Poslat zprávu | Profil
[#3173] | Publikováno: 10.08. 2012 - 09:46
Ďakujem takto to už funguje.
Ing Jan Cinert

Poslat zprávu | Profil
[#3174] | Publikováno: 10.08. 2012 - 11:12
:-) Rekordér je dobrý, ale nesmíte mu 100% věřit. Většinou ho používám při vytváření MD nebo GSD features, abych nemusel podle dokumentace určovat všechny jejich vlastnosti.


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.