Grafika.cz - vše o počítačové grafice

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:

Poptávka práce
Soutěž

Sponzorem soutěže je:

Saal Digital

 

Jaký největší formát fotoknihy v řadě Professional Line ve formátu na šířku lze ve standardní nabídce Saal Digital Fotoservice objednat? Nápověda: Logo sponzora soutěže

V dnešní soutěži hrajeme o:



Vyvolání dialogu u makra

Seznam témat     Nová odpověď

Přihlásit se     Registrace     Zapomenuté heslo

Re: Vyvolání dialogu u makra

Autor: JarWailg

1:16:15 03.03.2012

No pokud máme objekty zájmu jen v jedné určité vrstvě, tak nemusíme procházet vše na stránce.
Stačí vybrat objekty z té vrstvy. (třeba Vrstva 2)

Minule mi tam vypadl kousek, sorry.
Nevím jestli ten nápad povede k zrychlení, je to bez toho cyklu.

Sub PrevedNaKrivkyAZpet()
Dim Txt As Shape
Dim objzajmu
With ActiveDocument
.BeginCommandGroup "MojeKrivky"
Set objzajmu = ActivePage.Layers("Vrstva 2").FindShapes(, cdrTextShape)
objzajmu.ConvertToCurves
.EndCommandGroup
.PrintSettings.ShowDialog
.PrintOut
.Undo
End With
End Sub

Citovat příspěvek

 

Re: Vyvolání dialogu u makra

Autor: Jose3

21:56:54 02.03.2012

Už to funguje, což je super. Když už ale JarWaigl začal s tím vylepšováním... Opravdu se nedá v makru použít příkaz, který je ekvivalentem příkazu z menu Vybrat vše/text? Bylo by to podstatně rychlejší než ta smyčka vyhledávající texty a postupně je převádějící do křivek. Navíc by se vybíral jen text z odemčené vrstvy, čímž by se to taky urychlilo. Není to nijak nutné, funguje to i tak, ale když už jsme u toho ladění...
J.

Citovat příspěvek

 

Re: Vyvolání dialogu u makra

Autor: JarWailg

18:28:21 02.03.2012

Hezké, nejvíce mě potěšil vývoj posledních tří příspěvků.
Hned na počátku jsem si myslel, že je třeba rady dávkovat, aby nám přibyl další, kdo pronikne do kouzelného světa maker.

Jen to Txt za tím Next je zbytečné a trochu to učešeme.

Sub PrevedNaKrivkyAZpet2()
Dim Txt As Shape
With ActiveDocument
.BeginCommandGroup "MojeKrivky"
For Each Txt In ActivePage.FindShapes(, cdrTextShape)
Txt.ConvertToCurves
Next
.EndCommandGroup
.ShowDialog
.PrintOut
.Undo
End With
End Sub

Citovat příspěvek

 

Re: Vyvolání dialogu u makra

Autor: Jose3

14:02:57 02.03.2012

Tak vypadá to, že by to mohlo být odladěné. Konečná, funkční verze je:

Sub PrevedNaKrivkyAZpet2()

Dim Txt As Shape

ActiveDocument.BeginCommandGroup "MojeKrivky"

For Each Txt In ActivePage.FindShapes(, cdrTextShape)
Txt.ConvertToCurves
Next Txt

ActiveDocument.EndCommandGroup

ActiveDocument.PrintSettings.ShowDialog
ActiveDocument.PrintOut
ActiveDocument.Undo

End Sub

Citovat příspěvek

 

Re: Vyvolání dialogu u makra

Autor: Jose3

12:51:14 02.03.2012

Ha, tak vzápětí jsem narazil na zradu. Sice to na první pohled funguje, ale po odkliknutí tlačítka v dialogu tisk se tisk neprovede. Jen se jakoby nastaví parametry tisku. Asi by chtělo nějaký jiný příkaz na tisk, ale jinak je to super. Možná ze ten řádek ActiveDocument.PrintSettings.ShowDialog ještě doplnit něco aby se provedl tisk?
J.

Citovat příspěvek

 

Re: Vyvolání dialogu u makra

Autor: Jose3

12:47:36 02.03.2012

Zkusil jsem a hned napoprvé to funguje výborně. Ještě to vyzkouším v dlouhodobějším nasazení, ale vypadá to výborně. Díky moc, zase budu mít o něco snadnější život.
Jose

Citovat příspěvek

 

Re: Vyvolání dialogu u makra

Autor: pDp

12:07:50 02.03.2012

Asi bych na to undo raději použil BeginCommandGroup / EndCommandGroup

Netestoval jsem, jen jsem z hlavy pozměnil makdo od grigiho:

----------------------------------------
Sub PrevedNaKrivkyAZpet2()

Dim Txt As Shape

ActiveDocument.BeginCommandGroup "MojeKrivky"

For Each Txt In ActivePage.FindShapes(, cdrTextShape)
Txt.ConvertToCurves
Next Txt

ActiveDocument.EndCommandGroup

ActiveDocument.PrintSettings.ShowDialog
ActiveDocument.Undo

End Sub
----------------------------------------

Citovat příspěvek

 

Re: Vyvolání dialogu u makra

Autor: Jose3

10:40:44 02.03.2012

Díky, vyzkoušel jsem to, ale má to ještě jednu chybu. Text se převádí do křivek postupně a tak krok "zpět" pak vrátí do nerozkřivkovaného stavu jen poslední text, který zkřivkoval. Vše ostatní zůstane v křivkách.
Dalo by se to asi obejít bud tak, že by se dokument před rozkřivkováním uložil a pak se použil příkaz "vrátit", nebo to pojmout úplně jinak a na ten výběr textu jít pomocí příkazu vybrat vše/text. To by mělo i tu výhodu, že by se nerozkřivkovával text z jiných vrstev, které se netisknou. Příkaz zpět pak vrací všechno zakřivkované, protože se to provedlo naráz.
Jose

Citovat příspěvek

 

Re: Vyvolání dialogu u makra

Autor: grigi

8:54:53 02.03.2012

Netestoval jsem, ajk se to bude chovat např. u PowerClipu apod., ale tohle by mohlo být hrubé řešení:

----------------------------------------
Sub PrevedNaKrivkyAZpet()

Dim KrokyZpet As Integer

KrokyZpet = 0

Dim Txt As Shape
For Each Txt In ActivePage.FindShapes(, cdrTextShape)
Txt.ConvertToCurves
KrokyZpet = KrokyZpet + 1
Next Txt

ActiveDocument.PrintSettings.ShowDialog

For i = 1 To KrokyZpet
ActiveDocument.Undo
Next i

End Sub
----------------------------------------

Citovat příspěvek

 

Re: Vyvolání dialogu u makra

Autor: Jose3

7:31:09 02.03.2012

Ještě jsem hlupák zapomněl, že mezi bodem a) a b) musí být vložen příkaz "převést do křivek".
Asi by se to makro dalo napsat mnohem jednodušeji, předpokládám tak do pěti řádků, jen znát ty správné příkazy. Když se tak totiž dívám na to nahrané, tak tuším, že nebude moc univerzální. Ty odkazy "ActiveLayer.Shapes(24)" tuším odkazují na konkrétní objekty a to je k ničemu. Já potřebuji, aby se vždy při spuštění vybral všechen text.
Jose

Citovat příspěvek

 

Re: Vyvolání dialogu u makra

Autor: Jose3

7:07:00 02.03.2012

1) Text potřebuji dát před tiskem do křivek kvůli nedokonalému ovladači gravírovacího laseru. Pokud není vše v křivkách, úloha se špatně načte. Výrobce to sice "řeší", ale znáte to... Kupodivu nepomáhá nastavit v corelu v preferencích "odesílat písma jako grafiku". Zato převod do křivek je spolehlivý.
2) tomu moc nerozumím, popíšu tedy postup jak jsem makro vytvořil nahráním:
a) menu/vybrat vše/text
b) CTRL-P (tisk)
c) CTRL-Z (zpět)
toť vše, nic jiného nepotřebuji
3) vykopírování do nového souboru ba taky bylo cestou, ale tam trochu narážím na makro wf_fiximportDPI, které používám na to, aby se všechny bitmapy vkládala ve 300 DPI. Někdy ale mám v souboru i bitmapy s rozlišení vyšší (typicky pérovky) a když je přenesu přes schránku do nového souboru, tak se zvětší jejich rozměr dle 300 DPI. Dá se to obejít krokem "zpět", ale je to otravné.
4) tomu nerozumím

Makro napsat by bylo jistě lepší, ale to bych to musel umět :-) Třeba by stačilo ho jen trochu upravit, ale já vůbec netuším co je v něm napsané.
Díky za radu
Jose

Citovat příspěvek

 

Re: Vyvolání dialogu u makra

Autor: JarWailg

22:00:01 01.03.2012

no úžasné
ale nejprve pár dotazů
1. proč je třeba pro tisk převádět text do křivek?
2. vzhledem k tomu, že jsou objekty v makru odkazovány indexem možná to nebude fungovat po ubrání, přidání nějakých objektů
3. nebylo by jednodušší vytvořit si duplikát všeho, hodit ho na jinou stránku, převést vše do křivek (když už to musí být) vytisknout a zahodit? Originál (pravděpodobně pro editaci) mi zbyde.
4. je tam řádeček že cosi nebylo nahráno, to nevadí?

pak jedna odpověď
například
ActiveDocument.PrintSettings.ShowDialog

a ještě jeden dotaz
nebylo by lepší to makro napsat?

Citovat příspěvek

 

Vyvolání dialogu u makra

Autor: Jose3

12:45:39 01.03.2012

Dobrý den,
měl bych prosbu ohledně úpravy makra. Potřebuji takové zvláštní makro, které mi napřed vybere veškerý text, ten převede do křivek, pak spustí tisk a následně použije "zpět" aby se rozkřivkované texty vrátily do původního stavu. Vytvořil jsem si na to nahráním makro, které sice funguje, ale má dvě mouchy. Hlavní problém je, že nevyvolá dialogový panel pro tisk a tudíž nemohu vybrat a nastavit tiskárnu. Druhý problém je, že tiskovou úlohu pošle z nějakého důvodu dvakrát. Tak jsem chtěl poprosit někoho ze skušenějších kolegů, zda by mi makro trochu nepoupravil.
Předem díky
Josef

Sub tisk_razitek()
' Recorded 1.3.2012
'
' Description:
' Převod na křivky, tisk a zpět
ActiveDocument.CreateSelection ActiveLayer.Shapes(35), ActiveLayer.Shapes(40), ActiveLayer.Shapes(69), ActiveLayer.Shapes(72)
ActiveSelection.Separate
' Recording of this command is not supported: SplitDualSpotObject
ActiveDocument.AddToSelection ActiveDocument.MasterPage.DesktopLayer.Shapes(21), ActiveDocument.MasterPage.DesktopLayer.Shapes(20), ActiveDocument.MasterPage.DesktopLayer.Shapes(17), ActiveDocument.MasterPage.DesktopLayer.Shapes(14), ActiveLayer.Shapes(107), ActiveLayer.Shapes(93), ActiveLayer.Shapes(92), ActiveLayer.Shapes(91), ActiveLayer.Shapes(90), ActiveLayer.Shapes(89), ActiveLayer.Shapes(82)
ActiveDocument.AddToSelection ActiveLayer.Shapes(80), ActiveLayer.Shapes(58), ActiveLayer.Shapes(57), ActiveLayer.Shapes(54), ActiveLayer.Shapes(51), ActiveLayer.Shapes(49), ActiveLayer.Shapes(47), ActiveLayer.Shapes(43), ActiveLayer.Shapes(38), ActiveLayer.Shapes(33), ActiveLayer.Shapes(29)
ActiveDocument.AddToSelection ActiveLayer.Shapes(28), ActiveLayer.Shapes(26), ActiveLayer.Shapes(24), ActiveLayer.Shapes(8), ActiveLayer.Shapes(7), ActiveLayer.Shapes(6), ActiveLayer.Shapes(1)
ActiveSelection.ConvertToCurves
With ActiveDocument.PrintSettings
End With
ActiveDocument.PrintOut
ActiveDocument.Undo
End Sub

Citovat příspěvek

 

 

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: