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

DefineView

UživatelPříspěvek
Pavel Krsek

Poslat zprávu | Profil
Datum: 16.7. 2012 | Zobrazeno: 10400x
Konfigurace CATIA:

Text dotazu:
Ahoj,
věděl by někdo prosím jak definovat projekci view do drawingu pomoci oznacene plochy popř. plane na solidu ve space?

drawingViewGenerativeBehavior1.DefineFrontView 0.843391, -0.000000, 0.537300, 0.000000, 1.000000, 0.000000


tj. hodnoty vectoru ve scriptu nahradit urcitou plane?.

Diky za rady.

Ing Jan Cinert

Poslat zprávu | Profil
[#3090] | Publikováno: 16.07. 2012 - 10:28
Pomocí metody GetPlane objektu Measurable se dají zjistit všechny informace včetně vektorů. Ty pak můžete použít pro definici pohledu. Mělo by to jít i u rovinné plochy.

Víte jak na měření?

Pavel Krsek

Poslat zprávu | Profil
[#3091] | Publikováno: 16.07. 2012 - 10:38
Dekuji za radu.
Mereni ve scriptu jsem jiz pouzival - napr. pouziti namerene hodnoty - vzdalenosti mezi 2 body.
Co se, ale tyka dostani hodnot vektoru pomoci fce GetPlane, tak ted netusim jak na to.
Pokud by jste mohl naznacit kousek scriptu s danou funkci, tak by to bylo super.

Diky.
Ing Jan Cinert

Poslat zprávu | Profil
[#3092] | Publikováno: 16.07. 2012 - 12:36
Takhkle by to mělo být:

Dim Components(8)


oMeasurable = oPart.CreateReferenceFromObject(oPlane)
oMeasurable.GetPlane oComponents

Info z dokumentace:

The informations of the plane with respect to the product coordinate system:
oComponents(0) is the X coordinate of the origin
oComponents(1) is the Y coordinate of the origin
oComponents(2) is the Z coordinate of the origin
oComponents(3) is the X coordinate of the first direction of the plane
oComponents(4) is the Y coordinate of the first direction of the plane
oComponents(5) is the Z coordinate of the first direction of the plane
oComponents(6) is the X coordinate of the second direction of the plane
oComponents(7) is the Y coordinate of the second direction of the plane
oComponents(8) is the Z coordinate of the second direction of the plane
Pavel Krsek

Poslat zprávu | Profil
[#3093] | Publikováno: 17.07. 2012 - 07:06
Dekuji moc.
Uz to funguje.
Petr

Poslat zprávu | Profil
[#6902] | Publikováno: 08.01. 2021 - 14:23
Dobrý den,
potřeboval bych poradit, nějak jsem se zaseknul na skriptnu na měření....

v tomto řádku mě vyskakuje chyba
oMeasurable = oPart.CreateReferenceFromObject(oPlane)


Dim oPart As PartDocument
Dim oPlane
Dim oMeasurable
Dim Components(8)
Set oPart = CATIA.ActiveDocument
Dim SelectedElement As Selection
Set SelectedElement = oPart.Selection
SelectedElement.Search "CATPrtSearch.Plane.Name=SUPPORT,all"
Set oPlane = SelectedElement.Item(1).Value
oMeasurable = oPart.CreateReferenceFromObject(oPlane)
oMeasurable.GetPlane oComponents
Ing Jan Cinert

Poslat zprávu | Profil
[#6904] | Publikováno: 11.01. 2021 - 14:01
Dobrý den,

no máte to úplně špatně. Motáte dohromady objekt Part a PartDocument a úplně vám tam chybí to hlavní - objekt SPAWorkbench, který je první instance veškerých měření.

Když to doplním tak to bude vypadat nějak takhle (určitě to tu je několikrát napsané, jen hledat...)
Sub CATMain()

Dim oPart As Part
Dim oPlane As Plane
Dim SelectedElement As Selection
Dim TheSPAWorkbench As Workbench
Dim oMeasurable As Measurable
Dim Components(8)

Set oPart = CATIA.ActiveDocument.Part
Set TheSPAWorkbench = CATIA.ActiveDocument.GetWorkbench ( "SPAWorkbench" )

Set SelectedElement = CATIA.ActiveDocument.Selection
SelectedElement.Search "CATPrtSearch.Plane.Name=SUPPORT,all"

Set oPlane = SelectedElement.Item(1).Value
Set oRef = oPart.CreateReferenceFromObject(oPlane)
Set oMeasurable = TheSPAWorkbench.GetMeasurable( oRef )

oMeasurable.GetPlane (Components)

MsgBox "Plane: x=" & Components(0) & ", y=" & Components(1) & ", z=" & Components(2)
End Sub
Petr

Poslat zprávu | Profil
[#6905] | Publikováno: 14.01. 2021 - 11:39
Dobrý den,
s měřením nemám moc zkušenost, mockrát děkuji..

Petr

Poslat zprávu | Profil
[#6906] | Publikováno: 15.01. 2021 - 10:40
Dobrý den,
ještě bych měl jednu otázku, nerozumim jak se přepína mezi dokumentem a aktivním partem/ productem....

Chci aktivovat díl v sestavě podle názvu PartName např "DESKA1", tak abych mohl navázat na předchozí makro?

Na internetu jsem našel zajimavý odkaz,
http://http://www.scripting4v5.com/wp-content/uploads/2015/05/Lesson-5-Parts-Products-Drawings.pdf

Sub CATMain()

Dim documents1 As Documents
Set documents1 = CATIA.Documents
MsgBox "The number of documents is " & documents1.Count
Dim doc1 As Document
Set doc1 = documents1.Item("DESKA1")
Dim partDoc1 As PartDocument
Set partDoc1 = doc1

End Sub


Ale to co potřebuji jsem tam nenašel. Nevim teď nevím jak se přepnout z partdocument na part (Set oPart = CATIA.ActiveDocument.Part)

Doufám, že je to aspoň trochu srozumitelné.

Děkuji






Ing Jan Cinert

Poslat zprávu | Profil
[#6907] | Publikováno: 15.01. 2021 - 10:50
Jde o to potřebujete. Aktivovat Part já beru jako přepnout se do PartDesignu. To jde udělat jen jediným způsobem,
kdy vyberete Part pomocí selekce a zavoláte příkaz CATIA.StartWorkbench("PrtCfg"), čímž se aktivuje PartDesign (někdy je to v sestavě nutné aby makro funovalo).

Pokud ale myslíte objekt Part, tak to je vlastnost objektu PartDocument, tedy

oPart = oPartDocument.Part

nebo též
oPart = CATIA.ActiveDocument.Part

v případě že je otevřený a aktivní Part dokument.
Petr

Poslat zprávu | Profil
[#6908] | Publikováno: 15.01. 2021 - 11:26

Zkoušim vytvořit makro které prochazí celou sestavu,vyhledáparty (partbody), které mají připravenou pálicí šablonu a proto potřebuji rovinu z které se má vytvořit frontview a nazev PartName, proto mám na začátku makra aktivní hlavní sestavu



Jestli tomu rozumím správně,
tak aby mě fungovalo makro, kde používám funci GetPlane, které jsem řešil na začatku, tak musím mít part otevřený v novém okně.

Proto musím přes selekci vybrat part, který potřebuji a použít CATIA.StartCommand "Open in New Window" a pak terpve použít funkci get plane okno zavřít a použít selekci na další part atd...

Nebo to jde i jinak?



Ing Jan Cinert

Poslat zprávu | Profil
[#6910] | Publikováno: 15.01. 2021 - 12:35
Na to abyste zjistil vektor roviny to nutné není. Nicméně šel byl na to trochu jinak...

1) snažil bych se modelovat tak, aby pálicí šablona byla vždy ve stejné rovině

2) tu rovinu pak nemusíte hledat, stačí ji napevno zadat

3) když si připravíte šablonu výkresu pro výpalek s předefinovaným pohledem, nemusíte tu rovinu zjišťovat vůbec

4) stačí jen měnit linky na potřebný part a pak exportovat do DXF

Vždycky je lepší nejdřív vymyslet nejsnažší manuální způsob a ten se pak snažit automatizovat. Šlo by to samozřejmě i tak jak zamýšlíte, ale je to minimálně 3x tolik programování... :-)
Ing Jan Cinert

Poslat zprávu | Profil
[#6911] | Publikováno: 15.01. 2021 - 12:40
Ještě dodám, že jsem kdysi dělal podobné makro, které automaticky exportovalo vybrané (= specificky označené) skici do DXF.
Pokud si chcete ušetřit práci a čas, dalo by se upravit pro vaše potřeby a nabídnout.


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.