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

Interaktivní výběr bodu ve skice uživatelem

UživatelPříspěvek
Pavel Doležal

Poslat zprávu | Profil
Datum: 26.10. 2015 | Zobrazeno: 8945x
Konfigurace CATIA: V5 R24

Text dotazu:
Donrý den.
Chtěl bych vytvořit makro, kde uživatel zadává bod a plochu nebo rovinu. Jako základ jsem vzal kód uveřejněný v sekci Seriál CATIA. Problém je, že nevím, jak vybírat bod obsažený ve skice. Když do pole Dim ObjType(3) zadám ObjType(2) = "Sketch" , tak makro logicky vybírá celou skicu. Já ale potřebuji, aby výběr reagoval jen na pointy obsažené ve skice. Zbývající nastavení "Plane", "Point", "Face" fungují podle mých představ.
Předem děkuji za radu.


Language="VBSCRIPT"

Sub CATMain()

Dim oSelection As Selection
Set oSelection = CATIA.ActiveDocument.Selection

oSelection.Clear()

Dim ObjType(3)
ObjType(0) = "Plane"
ObjType(1) = "Point"
ObjType(2) = "Sketch"
ObjType(3) = "Face"

sStatus = oSelection.SelectElement2(ObjType, "Vyberte objekt ... (ESC pro ukončení)", False )
If (sStatus = "Cancel") Then ' ukoncime proceduru pri stisku Esc
Exit Sub
End If

Set oVybranyObjekt = oSelection.Item(1).Value

End Sub

Ing Jan Cinert

Poslat zprávu | Profil
[#5426] | Publikováno: 26.10. 2015 - 13:29
Dobrý den,

pro bod ve skicáři by název typu měl být Point2D (analogicky Line2D atd), Point je pouze pro body v prostoru. Pro definici features existuje enumerace CATSelectionFilter, kde jsou objekty definovány pomocí topologie a ne podle typu. Tím se dá s výhodou nastavit možnost výběru podle topologie. (lze najít v dokumentaci API)

enum CATSelectionFilter {

ZeroDim,
MonoDim,
MonoDimInfinite,
RectilinearMonoDim,
RectilinearMonoDimInfinite,
BiDim,
BiDimInfinite,
PlanarBiDim,
PlanarBiDimInfinite,
CylindricalBiDim,
TriDim}


Dá se to ještě kombinovat, např. BiDimFeatEdge odpovídá jakékoliv hraně na solidu nebo na ploše.

Pavel Doležal

Poslat zprávu | Profil
[#5428] | Publikováno: 26.10. 2015 - 15:21
Dobrý den.
Typ objekt "Point2D" ani "Line2D" mi nezafungovaly. V dokumentaci API jsem nalezl nožnost zadat "Vertex". Tato volba pak umožňuje vybírat koncové body a všechny typy pointů. Nakonec bude toto pro můj účel nejvhodnější.
Ing Jan Cinert

Poslat zprávu | Profil
[#5431] | Publikováno: 27.10. 2015 - 19:16
Point2D i Line2D fungují spolehlivě, ale samozřejmě to nelze použít na generovanou geometrii. Tam se jedná o typ CATEarlyGeneratedItem.

Tj. Point2D a pod. funguje na manuálně kreslenou geometrii. U generované pak lze použít vámi zmiňovaný typ Vertex a analogicky by tedy mohlo fungovat i Edge. Vertex je topologicky např. konec čáry (roh), Edge pak jakákoliv křivka.
Pavel Doležal

Poslat zprávu | Profil
[#5433] | Publikováno: 28.10. 2015 - 09:04
Aha. Tak to byl ten problém.
Část makra, kde zadávám vstupní hodnoty mi už díky vám chodí.
Moc děkuji za pomoc.


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.