Již 10.000+ CAD tipů.
Přes 118.000 registrovaných u nás, celkem 1.091.000 registrovaných (CZ+EN), přes 53.000 CAD/BIM bloků.
Vyzkoušejte nový přesný Inženýrský kalkulátor.
Kompletní příkazy AutoCADu a proměnné AutoCADu 2026.
Diskuzní fórum, poradna
?CAD diskuze, rady, výměna zkušeností

Fórum nenahrazuje technický support firmy ARKANCE (CAD Studio) - přímá podpora pro zákazníky funguje na helpdesk.arkance-systems.cz
|
Odpovědět ![]() |
archiv |
Autor | |
jirka007CZ ![]() Diskutér ![]() Přihlášen: 07.led.2007 Lokalita: ČR (SČ) Používám: Inventor 2014 Stav: Offline Bodů: 27 |
![]() Zasláno: 05.zář.2014 v 09:32 |
Dobrý den, ve firmě používáme několik druhů rámečků výkresů. Než je výkresová dokumentace schválená, tak máme rámeček s příčným vodoznakem "informativní". Po schválení dokumentace měníme rámeček na totožný, ale bez vodoznaku. Obdobně máme řešené speciální listy s kusovníkem.
Cílem je zjednodušit tuto změnu...snížit počet kliků. Vydal jsem se cestou "čudlíku", který tyto kroky provede přes VBA makro. Základní kód jsem získal na zahraničním fóru a v zásadě funguje dobře. Jediným problémem je, že z našich rámečků odstraní horizontální a vertikální zóny. Další vadou je, že změnu provádí na všech výkresech. Rád bych touto cestou poprosil o radu jak kód upravit ku prospěchu věci, tudíž rámečky se zónami a změna rámečku pouze na aktivním listu. Moc děkuji za radu, kód níže. Public Sub InsertCustomBorderOnSheet() ' Set a reference to the drawing document. ' This assumes a drawing document is active. Dim oDrawDoc As DrawingDocument Set oDrawDoc = ThisApplication.ActiveDocument ' Obtain a reference to the desired border definition. Dim oBorderDef As BorderDefinition Set oBorderDef = oDrawDoc.BorderDefinitions.Item("Název požadovaného rámečku") ' Set a reference to count all sheets in document Dim oSheets As Sheets Set oSheets = oDrawDoc.Sheets Dim iSheets As Integer For iSheets = 1 To oSheets.Count ' Check to see if the sheet already has a border and delete it if it does. If Not oSheets(iSheets).Border Is Nothing Then oSheets(iSheets).Border.Delete End If ' Add an instance of the border definition to the sheet. Dim oBorder As Border Set oBorder = oSheets(iSheets).AddBorder(oBorderDef) Next End Sub |
|
Chyba je vždy mezi monitorem a židlí...
|
|
![]() |
|
Navara ![]() Profil člena
Odeslat soukromou zprávu
Najít příspěvky člena
Navštívit stránky člena
Přidat do seznamu známých
ARKANCE support ![]() ![]() Arkance Systems Přihlášen: 08.zář.2008 Lokalita: ČR (Pha) Používám: Inventor Stav: Offline Bodů: 1637 |
![]() |
Úprava tak, aby se měnil rámeček na aktuálním listu je jednoduchá
S tím mizením zón je to horší, protože to vypadá na nějakou chybu Autodesku. Doporučuju si dát trochu práce a namalovat si vlastní rámeček se zónami a nepoužívat ten výchozí, nebo automaticky generovaný. Další možnost je neměnit rámeček, ale do rámečku doplnit textové pole, které bude zobrazovat nějakou iVlastnost výkresu a pokud bude její hodnota prázdná, tak se žádný vodoznak nezobrazí. Jinak tam můžete mít libovolný text.
|
|
![]() |
|
jirka007CZ ![]() Diskutér ![]() Přihlášen: 07.led.2007 Lokalita: ČR (SČ) Používám: Inventor 2014 Stav: Offline Bodů: 27 |
![]() |
Dobrý den, moc děkuji za radu a upravený kód. Bohužel v předposledním řádku funkce zkolabuje.
Set oBorder = oSheets(iSheets).AddBorder(oBorderDef) Následně vyhlásí chybu: Sub or Function not defined. Textové pole s ivlastností nebo i statickým textem jsem byl nucený v prvopočátku mého snažení zavrhnout. Důvod byly různé formáty výkresů. Text ve výkresu se mi nepodařilo přemluvit, aby se přizpůsobovalo různým formátům listů. Tudíž východiskem se staly různé rámečky se statickým vodoznakem pro všechny používané formáty listu a jeden rámeček bez textu univerzální pro všechny formáty.
|
|
Chyba je vždy mezi monitorem a židlí...
|
|
![]() |
|
Vladimír Michl ![]() Profil člena
Odeslat soukromou zprávu
Najít příspěvky člena
Navštívit stránky člena
Přidat do seznamu známých
Moderátor ![]() ![]() Arkance Systems Přihlášen: 09.zář.2004 Lokalita: ČR (JČ) Používám: Implementujeme řešení Autodesk Stav: Offline Bodů: 21890 |
![]() |
Zřejmě tam má být "oSheet.AddBorder(oBorderDef)" - jde o to zda pracujete s aktuálním listem nebo se všemi.
|
|
![]() |
|
jirka007CZ ![]() Diskutér ![]() Přihlášen: 07.led.2007 Lokalita: ČR (SČ) Používám: Inventor 2014 Stav: Offline Bodů: 27 |
![]() |
Dobrý den, děkuji moc, funkce již pracuje jak má. Ještě nějakým způsobem vyřeším problém s mizejícími zónami a bude to dokonalé.
Ještě jednou moc děkuji.
|
|
Chyba je vždy mezi monitorem a židlí...
|
|
![]() |
Pro technickou podporu CAD
kontaktujte Helpdesk
Odpovědět ![]() |
|
Přejít na fórum | Oprávnění fóra ![]() Nemůžete vytvářet nová témata v tomto fóru Nemůžete odpovídat na témata v tomto fóru Nemůžete vymazávat vaše příspěvky v tomto fóru Nemůžete upravovat vaše příspěvky v tomto fóru Nemůžete vytvářet ankety v tomto fóru Nemůžete hlasovat v anketách v tomto fóru |
Stránka byla vygenerována za 0,336 sekund.