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

Změna názvu pohledu

Kompletní přehled příspěvků v tématu Změna názvu pohledu řazený podle data jejich publikace na fóru.

UživatelPříspěvek
PetrHH

Poslat zprávu | Profil
Datum: 16.4. 2012 | Zobrazeno: 12502x
Konfigurace CATIA:

Text dotazu:
Dobrý den,

Při vytvářební pohledu na výkrese mi skáče do pohledu automatický popis ve stylu "Schnitt B-B Massstab 1:2" (samozrejme v nemecke verzi) potreboval bych nastavit v catii aby se text "Schnitt" a "Massstab" při vytváření pohledu neobjevoval.
Schnitt=řez
Masstab=měřítko
Samozřejmě problém se netýká pouze řezu, uvedl jsem ho pouze jako příklad. V nastavení nemohu nikde nalézt, kde by to člověk mohl přenastavit.

Děkuji předem za každou radu.
Petr

Ing Jan Cinert

Poslat zprávu | Profil
[#2844] | Publikováno: 16.04. 2012 - 20:49
Tohle přenastavíte v Options, viz příloha.

Přiložené obrázky:

PetrHH

Poslat zprávu | Profil
[#2845] | Publikováno: 17.04. 2012 - 09:31
Děkuji za rychlou odpověď.
Problém při tomto nastavení je, že se mi pak nezobrazí žádný nápis, ale já potřebuji, aby bylo zachováno např. "B-B 1:2" namísto "Schnitt B-B, Masstab:1:2" přijde mi že v normálních Options to nastavit nelze.
Ing Jan Cinert

Poslat zprávu | Profil
[#2849] | Publikováno: 17.04. 2012 - 14:16
Nejsem si jistý, jestli to jde přenastavit ve standardu. Názvy pohledů si Catia vkládá sama podle typu pohledu a lokalizace. Z nich se pak odvozuje název pohledu s ID a příponou, který je generován formulí (ta se vytváří automaticky) a přenáší se do textového pole v pohledu (název + ID + přípona).

Pokud by to nebylo ve standardech, bude třeba modifikovat patřičné soubory .nls, kde je definována lokalizace (prefixy se mění podle jazykové verze EN: Front, DE: Vorder Ansicht, ...)

Takto se např. lokalizuje Catia do CZ. Největší problém je najít odpovídající nls soubor (jsou jich tisíce), většinou lze podle názvu určit, k jakému modulu se vztahuje. Pak se musí otevřít a přepsat texty. Pokud byste tam chtěl jen B-B, zapsal by se prázdný řetězec.

Mnohem efektivnější je ale řešit to jednoduchým makrem, které automaticky přepíše názvy pohledů / řezů z např. Schnitt B - B na B - B. To lze samozřejmě udělat i ručně.
PetrHH

Poslat zprávu | Profil
[#2860] | Publikováno: 19.04. 2012 - 09:56
Děkuji za opdověď. No tak trošku se o Makra zajímám a pár se my jich podařilo i vytvořit , ale v tomto případě nevím moc jak bych ho vytvořil. klasické nahrání procedury asi moc nepomůže (zda-li se něco vůbec nahraje). Věděl by někdo jak vytvořit toto makro?

Ručně na každém pohledu odmazávat tento text je u velkých sestav už trošku otrava.

Ing Jan Cinert

Poslat zprávu | Profil
[#2863] | Publikováno: 19.04. 2012 - 10:41
Pokud by Vám nevadilo, že se pohledy ve stromu budou mít názvy jen A-A místo Schnitt A-A,
pak to bude vypadat nějak takhle. Předpoklad je, že máte aktivní výkres.

Set oActiveDrawing = CATIA.ActiveDocument

Set oDrawingRoot = oActiveDrawing.DrawingRoot

' projdeme vsechny listy

For i = 1 To oDrawingRoot.Sheets.Count

Set oSheet = oDrawingRoot,Sheets.Item(i)

' projdeme vsechny pohledy krome main a background, proto zaciname od 3
For j = 3 To oSheet.Views.Count

Set oView = oSheet.Views.Item(j}

' porovnavame typ pohledu, prejmenujeme jen rezy
If oView.ViewType = CatViewType.catSectionView _
Or oView.ViewType = CatViewType.catSectionCutView Then

' nastavime nazev pohledu - ID udava nazev rezu, tedy pro A-A je ID rovno A
oView.SetViewName ("Prefix", "ID", "Suffix")

End If

Next

Next


Psáno z hlavy narychlo, někde může být překlep.
PetrHH

Poslat zprávu | Profil
[#2865] | Publikováno: 19.04. 2012 - 13:15
Po menších úpravách zdrojáku
Language="VBSCRIPT"


Sub CATMain()
Set oActiveDrawing = CATIA.ActiveDocument
Set oDrawingRoot = oActiveDrawing.DrawingRoot

' projdeme vsechny listy

For i = 1 To oDrawingRoot.Sheets.Count
Set oSheet = oDrawingRoot.Sheets.Item(i)

' projdeme vsechny pohledy krome main a background, proto zaciname od 3

For j = 3 To oSheet.Views.Count
Set oView = oSheet.Views.Item(j)

' porovnavame typ pohledu, prejmenujeme jen rezy

If oView.ViewType = CatViewType.catSectionView _
Or oView.ViewType = CatViewType.catSectionCutView _
Then

' nastavime nazev pohledu - ID udava nazev rezu, tedy pro A-A je ID rovno A

oView.SetViewName ("Prefix", "ID","Suffix")

End If

Next
Next

End Sub
mi to nyní háže chybu na řádku :

oView.SetViewName ("Prefix", "ID","Suffix")
Ing Jan Cinert

Poslat zprávu | Profil
[#2867] | Publikováno: 19.04. 2012 - 13:31
Zkuste dát pryč závorky, já normálně píšu v .NETu, kde být musí, ale tady by asi dělají problém.

Jinak hodnoty Prefix, ID a Suffix jsou v kódu napsané obecně. Vy si musíte nejdřív zjistit jejich hodnoty, a pak je upravené zase zapsat. Takže:
Dim sPrefix, sID, sSuffix


' ziskame aktualni hodnoty
oView.GetViewName sPrefix, sID, sSuffix

' zapiseme puvodni hodnoty, ale nazev uplne vymazeme
oView.SetViewName "", sID, sSuffix
PetrHH

Poslat zprávu | Profil
[#2870] | Publikováno: 19.04. 2012 - 13:47
OK upraveno. Skript probehne bez chybove hlasky ale vymaze pouze prvni nazev u prvniho pohledu jinak vse ostatni zustane stejne.
Language="VBSCRIPT"


Sub CATMain()
Dim sPrefix, sID, sSuffix
Set oActiveDrawing = CATIA.ActiveDocument
Set oDrawingRoot = oActiveDrawing.DrawingRoot

' projdeme vsechny listy

For i = 1 To oDrawingRoot.Sheets.Count
Set oSheet = oDrawingRoot.Sheets.Item(i)

' projdeme vsechny pohledy krome main a background, proto zaciname od 3

For j = 3 To oSheet.Views.Count
Set oView = oSheet.Views.Item(j)

' porovnavame typ pohledu, prejmenujeme jen rezy

If oView.ViewType = CatViewType.catSectionView _
Or oView.ViewType = CatViewType.catSectionCutView _
Then

' ziskame aktualni hodnoty

oView.GetViewName sPrefix, sID, sSuffix

' zapiseme puvodni hodnoty, ale nazev uplne vymazeme

oView.SetViewName "", sID, sSuffix

End If

Next
Next

End Sub
Ing Jan Cinert

Poslat zprávu | Profil
[#2873] | Publikováno: 19.04. 2012 - 14:43
Tak vyzkoušejte, jestli skript opravdu prochází všechny pohledy, před podmínku s typem pohledu dejte MsgBoX(oView.Name0).
PetrHH

Poslat zprávu | Profil
[#2878] | Publikováno: 20.04. 2012 - 12:44
Postupně to prochází všechny pohledy. Msgbox vypisuje postupne nazvy vsech pohledu nachazejicich se v sestave, ale vymaže akorát "Vorderansicht".

Ing Jan Cinert

Poslat zprávu | Profil
[#2879] | Publikováno: 20.04. 2012 - 12:56
A zrovna ten by to vymazat nemělo, takže je chyba v té podmínce. Možná že ve vbscriptu není správně podporovaná enumerace catViewType, zkuste si ještě v MsgBoxu vypsat typ pohledu a podle něj pak sestavit podmínku omezující přepis jen na řez a průřez.

Jestli si nejdu chvilku, tak to zkusím otestovat naživo, takhle "na papíře" to není úplně ono. :-)
Tomáš Martinek

Poslat zprávu | Profil
[#3989] | Publikováno: 04.07. 2013 - 08:03
Dobrý den,
podařilo se vám nakonec odladit toto makro? Přiznávám, že neustálá úprava těchto názvů mě už dohání k šílenství.

Děkuji
Tomáš Martinek
Ing Jan Cinert

Poslat zprávu | Profil
[#3990] | Publikováno: 04.07. 2013 - 12:26
Zatím jsem to dál neřešil, ale jde to i jinak. Nevím jestli ve standardu (nebo jinde) se dá nastavit, jak budou pohledy pojmenované.

Určitě se dá v některém souboru s lokalizací nahradit slovo Section cut za prázdný řetězec (u DE lokalizace to jinak píše Schnitt, u CZ se nastavuje Řez), pak to bude rovnou dělat jen A-A, B-B bez dalších úprav.
Tomáš Martinek

Poslat zprávu | Profil
[#3991] | Publikováno: 04.07. 2013 - 13:11
Ano, měl jste pravdu... je to soubor CATView.CATNls ;-)

Děkuji


//=============================================================================
// CNext - CXR1
// COPYRIGHT DASSAULT SYSTEMES 1997
//-----------------------------------------------------------------------------
// FILENAME : CATView
// LOCATION : DraftingFeature/CNext/resources/msgcatalog/
// AUTHOR : tbe
// DATE : 20/05/98
//------------------------------------------------------------------------------
// DESCRIPTION : Resources File For NLS purpose related to the View names
//
//------------------------------------------------------------------------------
// COMMENTS :
//------------------------------------------------------------------------------
//MODIFICATIONS user date purpose
// HISTORY ---- ---- -------
//------------------------------------------------------------------------------


FrontView ="Front view";
LeftView ="Left view";
RightView ="Right view";
BottomView ="Bottom view";
TopView ="Top view";
RearView ="Rear view";
IsomView ="Isometric view";
AuxiliaryView ="Auxiliary view ";
SectionView ="Section view ";
SectionCutView="Section cut ";
DetailView ="Detail ";
View ="View";
Prefix ="Scale:";
UnfoldedView ="Unfolded view";
Ing Jan Cinert

Poslat zprávu | Profil
[#3992] | Publikováno: 04.07. 2013 - 14:00
A je to! :-) Rychlé, efektivní a bez ztráty informace. A vždy to jde vrátit zpátky.
Andrej Verný

Poslat zprávu | Profil
[#5626] | Publikováno: 10.02. 2016 - 15:33
Trošku oživím tému z roku 2012 . Zrovna som riešil niečo podobné.
Len pre info :
Podmienka
If oView.ViewType = CatViewType.catSectionView _

Or oView.ViewType = CatViewType.catSectionCutView _
Then

oView.Viewtype - výstupom je len cislo. Sice vo VBA v locals pekne identifikuje o aky typ pohladu sa jedna, ale bohužial typ pohľadu si musime odladiť. Napri Front view = 1, Section View tuším 9... Preto ta podmienka nefunguje.
Takže treba to nahradiť nejako takto

If oView.ViewType = 9 _

Or oView.ViewType = 10 _
Then

Cislo 10 som len tipol .... neviem ci to je section cut :D ... Ako som pisal, treba si odladiť.

Ešte pikoška pre VBA : (dosť som sa natrápil kým som prišiel na chybu, tak snáď niekomu ušetrím čas a nervy :D )
vo VBA sa nedá oView deklarovať ako DrawingView, pretože potom metóda .GetViewName nebude fungovať a bude hadzať chybu "ByRef argument" (niečo v podobnom zmysle). takže ja som u seba oView vydeklaroval ako Variant a funguje to.


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.