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

Ulkladanie do viacej formatov sucasne

Kompletní přehled příspěvků v tématu Ulkladanie do viacej formatov sucasne řazený podle data jejich publikace na fóru.

UživatelPříspěvek
Kamil

Poslat zprávu | Profil
Datum: 14.4. 2011 | Zobrazeno: 11528x
Konfigurace CATIA:

Text dotazu:
Po nakresleni vykresu potrebujem tento ulozit hned v 4 formatoch. Drawing, PDF, DWG a DXF.
Ako dosiahnem toho aby mi to Catia urobila jednym kliknutim. A aby boli jednotlive formaty zvlast kazdy vo svojej zlozke.

Jan Svoboda

Poslat zprávu | Profil
[#1854] | Publikováno: 14.04. 2011 - 17:16
Ahoj, musíš si napsat makro. :)
Kamil

Poslat zprávu | Profil
[#1855] | Publikováno: 14.04. 2011 - 18:27
Sakra
Tak som sa tesil ze nebudem musiet ist na makraaa
Zdeněk Mrázek

Poslat zprávu | Profil
[#1857] | Publikováno: 15.04. 2011 - 07:26
Makro na prosté uložení do více formátů by se dalo rovnou nahrát, to není potřeba programovat. Horší to bude s tím rozdělením do složek, ale to už je složitější problém obecně, protože záleží na tom, zda jsou to vždy stejně nazvané adresáře, zda jsou již vytvořené nebo se mají teprve při ukládání založit, ...
Kamil

Poslat zprávu | Profil
[#1860] | Publikováno: 15.04. 2011 - 23:37
Zalozit adresa si vzdy zalozim sam. Ano uz som si take makro nahral. Ale problem bol v tom ze mi to vzdy ukladalo pod rovnakym nazvom suboru. Co som aj cakal ze bude robit. Teraz sa snazim prist nato ako tam aplikujem okno ktore si vzdy najskor vyziada nazov suboru. To by mi myslim malo stacit.
Kamil

Poslat zprávu | Profil
[#1887] | Publikováno: 22.04. 2011 - 15:15
Prosim Vas toto sluzi vlastne na premenovanie aktualne otvoreneho Partu?

product1.PartNumber = "Novy nazov"

Nic viacej a nic menej?
Ing Jan Cinert

Poslat zprávu | Profil
[#1888] | Publikováno: 22.04. 2011 - 16:06
Vlastnost PartNumber je to, co vidíte v Partu / Produktu v Top uzlu stromu. Záleží co je objekt product1.
Kamil

Poslat zprávu | Profil
[#1889] | Publikováno: 22.04. 2011 - 16:44
Ako premiestnim vopred urcenu cestu a nazov suboru tam kam potrebujem?
Vid priloha...

Přiložené obrázky:

Ing Jan Cinert

Poslat zprávu | Profil
[#1890] | Publikováno: 22.04. 2011 - 20:50
Název souboru i s cestou máte v proměnné filepath, takže pak to musí být takto:
drawingDocument1.SaveAs filepath

a to je celé.

Ten první dialog, resp. skoro celý kód až k tomuto dialogu tam vůbec nemusí být.
Kamil

Poslat zprávu | Profil
[#1892] | Publikováno: 23.04. 2011 - 15:40
Ale ja sa snazim urobit toto:
1, InputBox do ktoreho napisem nazov vykresu.
2, Tento nazov sa mi zobrazi v okne pre ulozenie vykresu. Kde cestu pre ulozenie zistim z toho filepath.
Ing Jan Cinert

Poslat zprávu | Profil
[#1893] | Publikováno: 23.04. 2011 - 19:21
Nejsem si úplně jistý, ale myslím, že název souboru nelze do FileSelectionBoxu zadat předem. V proměnné filepath je celá cesta k souboru včetně jeho názvu, který v tomto dialogu zadáváte.
Řešením by bylo proměnnou filepath rozdělit podle zpětných lomítek (\) a znovu poskládat cestu, ale už bez názvu souboru (část za posledním lomítkem) a tuto nahradit proměnnou Input, kterou získáte v prvním InputBoxu.
Kamil

Poslat zprávu | Profil
[#1894] | Publikováno: 23.04. 2011 - 19:35
MkDir "C:\novy_podadresar"

Je toto spravna metoda ktora mi vytvori podadresar?
Alebo treba este otvorit nejaku kniznicu predtym?
Ing Jan Cinert

Poslat zprávu | Profil
[#1895] | Publikováno: 23.04. 2011 - 19:40
Určitě ne, tohle je metoda pro příkazová řádek, ne pro VB. Podívejte se do manuálu, tam je to všechno perfektně popsané.

Pro vytvoření adresáře je to metoda CreateFolder objektu FileSystem.
Kamil

Poslat zprávu | Profil
[#1896] | Publikováno: 23.04. 2011 - 20:04
Nemam nejaky prehladny manual pre zaciatocnika_?
Ing Jan Cinert

Poslat zprávu | Profil
[#1897] | Publikováno: 23.04. 2011 - 21:00
Podívejte se do souboru V5Automation.chm v adresáři ...catiainstalpath.../code/bin. Je tam celý objektový model, včetně příkladů atd.
Kamil

Poslat zprávu | Profil
[#1898] | Publikováno: 24.04. 2011 - 09:39
Tak o tomto som sa docital ze je metoda ktore vytvori adresar na cecku...

Dim FoldObj As Folder
Set FoldObj = FileSys.CreateFolder("C:\Tests")

Ale stale mi to vyhadzuje chybu ze nepozna objekt FileSys.
Kamil

Poslat zprávu | Profil
[#1899] | Publikováno: 24.04. 2011 - 09:57
Tak uz viem ze chyba bola v tom ze som zabudol na instanciu objektu fFilSys...

Language="VBSCRIPT"

Sub CATMain()

Dim oFileSys As FileSystem
Set oFileSys = CATIA.FileSystem

Dim FoldObj1 As Folder
Set FoldObj1 = oFileSys.CreateFolder("DRAWINGS")

Dim FoldObj2 As Folder
Set FoldObj2 = oFileSys.CreateFolder("DWG")

Dim FoldObj3 As Folder
Set FoldObj3 = oFileSys.CreateFolder("DXF")

Dim FoldObj4 As Folder
Set FoldObj4 = oFileSys.CreateFolder("PDF")

End Sub

Kamil

Poslat zprávu | Profil
[#1900] | Publikováno: 24.04. 2011 - 09:58
Makro mi vytvori tieto priecinky, uz len prist nato ako do kazdeho ulozit to co tam patri...
Ing Jan Cinert

Poslat zprávu | Profil
[#1903] | Publikováno: 24.04. 2011 - 12:00
No vidíte, jak jste na to přišel. :-) Teď už jen použijte normální SaveAs. Dál to udělejte viz příspěvek 571, do cesty pokaždé přidáte ještě "/DWG/nazev_souboru", "/DXF/nazev_souboru" atd.
Kamil

Poslat zprávu | Profil
[#1904] | Publikováno: 24.04. 2011 - 18:26
Je zaujimave ze ak uz mam tieto podpriecinky vytvorene a opat spustim makro tak mi to nevypise ziadnu chybu, ktoru som ocakaval. Ale nevadi aspon to nemusim riesit.
Kamil

Poslat zprávu | Profil
[#1905] | Publikováno: 24.04. 2011 - 18:30
Prispevek 571?
To bol asi vas aktualny stav prispevkov?
Mal ste na mysli: prispevok 1890 ?
Ing Jan Cinert

Poslat zprávu | Profil
[#1906] | Publikováno: 24.04. 2011 - 22:35
Eh, překlep, myslel jsem příspěvek 1893. Oddělit z filepath název souboru, přidat podadresář a název souboru zadaný uživatelem.
Kamil

Poslat zprávu | Profil
[#1910] | Publikováno: 26.04. 2011 - 19:26
Tuto som sa snazil vybrat subor aj s koncovkou do premennej "nazov"...


Dim oFileSys As FileSystem
Set oFileSys = CATIA.FileSystem

Dim nazov As String
Set nazov = oFileSys.GetFile("C:\Tests\Text.txt")
MsgBox (nazov)


...ale akosi furt narazam na chybu ze nepozna GetFile?
Ing Jan Cinert

Poslat zprávu | Profil
[#1911] | Publikováno: 26.04. 2011 - 20:37
Mícháte jablka a hrušky dohromady. Koukal jste do manuálu? Metoda GetFile vrací hodnotu typu File, vy ji ale přiřazujete do typu string, to samozřejmě nejde.

Nějak nechápu o co se teď snažíte?
Kamil

Poslat zprávu | Profil
[#1913] | Publikováno: 26.04. 2011 - 20:56
Aj ked som tam dal File (ano ma tam byt File) tak to pise chybu.
Teraz mi ide len o to aby som si to vyskusal, lebo to asi budem potrebovat na to separovanie tej cesty.
Ing Jan Cinert

Poslat zprávu | Profil
[#1915] | Publikováno: 26.04. 2011 - 21:36
To ale vůbec není třeba. Na rozdělení celé cesty podle lomítek vám stačí fce split.

Dim newFilePath As String

Dim PathParts()
PathParts = filePath.split("\") ' rozdelite cestu Do pole podle zpetnych lomitek
For i = 0 to UBound(PathParts) - 2 ' slozite cestu bez posledniho adresare a nazvu
newFilePath = newFilePath & PathParts(i) & "\"
Next
newFilePath = newFilePath & "\" dirName & "\" & fileName ' pridate adresar a soubor


Nerucim za uplnou spravnost, pisu to z hlavy, ale v principu je to OK
Kamil

Poslat zprávu | Profil
[#1920] | Publikováno: 27.04. 2011 - 19:04
Ano ano o tom Splite uz viem, pomaly studujem Visual :-) . Ale neviem preco mi nechce ten predchadzajuci kod fungovat? Rad by som na to prisiel.
Ing Jan Cinert

Poslat zprávu | Profil
[#1922] | Publikováno: 27.04. 2011 - 23:15
Myslíte z příspěvku #1910? Pokud máte oFile jako File a soubor existuje, mělo by to fungovat. V MsgBoxu ale musíte použít metodu Name, protože MsgBox bere jako vstup String.

potom by to mělo být
MsgBox oFile.Name
Kamil

Poslat zprávu | Profil
[#1940] | Publikováno: 29.04. 2011 - 17:18
Co robim tu zle ked mi Catia stale vypisuje chybu?


MsgBox (filepath)
Dim sPath As String
Dim policko() As String
policko = Split(filepath, "\")
MsgBox (policko)
sPath = filepath
MsgBox (sPath)
Ing Jan Cinert

Poslat zprávu | Profil
[#1943] | Publikováno: 29.04. 2011 - 20:20
policko jste deklaroval jako pole, nemůžte ho vypsat v MsgBoxu. Tehto kus kódu v podstatě nic neudělá, jen vám rozdělí promennou filepath do pole.
Kamil

Poslat zprávu | Profil
[#1944] | Publikováno: 29.04. 2011 - 21:37
Ano rozdeli mi premennu filepath do pole, a ako overenie som chcel aby mi prvu cast pola vypisalo do MsgBox-u. Ale mne to vyhadzuje chybu uz pri 4 riadku?
Ing Jan Cinert

Poslat zprávu | Profil
[#1945] | Publikováno: 29.04. 2011 - 23:22
Tohle funguje...

Sub CATMain()

filepath = CATIA.FileSelectionBox("Select a text file", "*.*", CatFileSelectionModeOpen)
directory = InputBox("Nazev adresare", ,"")
file = InputBox("Nazev souboru", ,"")
parts = split(filepath, "\")
For i = 0 to UBound(parts) - 1
If i = 0 Then
newFilePath = parts(i)
Else
newFilePath = newFilePath & "\" & parts(i)
End If
Next
newFilePath = newFilePath & "\" & directory & "\" & file
MsgBox newFilePath
End Sub
Kamil

Poslat zprávu | Profil
[#1946] | Publikováno: 30.04. 2011 - 01:54
Ach, no uz viem preco mi ten predchadzajuci kod z prispevku 1940 nefungoval.
Proste som len nemal deklarovat premennu "policko".
Moc krat dik za trpezlivost...
Kamil

Poslat zprávu | Profil
[#1950] | Publikováno: 01.05. 2011 - 03:23
Tak som to makro akosi zlepil do jedneho celku.
Dosiahol som toho ze mi makro automaticky ulozi *.CATDrawing do *.pdf.
Ale ked som potom chcel nasledne otvorit pdf-ko zvonku z windowsu tak sa to pdf tvari ako keby ani pdf nebolo?


Language="CATScript"
Sub CATMain()
Set drawingDocument1 = CATIA.ActiveDocument
filepath = CATIA.FileSelectionBox("Zadaj nazov vykresu", "*.CATDrawing", CatFileSelectionModeSave)

Dim oFileSys As FileSystem
Set oFileSys = CATIA.FileSystem

Dim FoldObj4 As Folder
Set FoldObj4 = oFileSys.CreateFolder("PDF")

parts = split(filepath, "\")
For i = 0 to UBound(parts) - 1
If i = 0 Then
newFilePath = parts(i)
Else
newFilePath = newFilePath & "\" & parts(i)
End If
Next

MsgBox parts(Ubound(parts)-0), vbOkOnly, "Nazov vykresu"
partsKoncovkyDRAWINGS = split(parts(Ubound(parts)), ".")
k1 = partsKoncovkyDRAWINGS(Ubound(partsKoncovkyDRAWINGS))

newFilePathToPDF = newFilePath & "\PDF"
MsgBox newFilePathToPDF, vbOKOnly, "Cesta pre PDF"

newFilePath = newFilePathToPDF & "\" & k1 & "." & "pdf"
drawingDocument1.SaveAs newFilePath

End Sub 'ukonceni hlavniho programoveho bloku
Ing Jan Cinert

Poslat zprávu | Profil
[#1951] | Publikováno: 01.05. 2011 - 13:17
No a vy se divíte? Tím že změníte souboru koncovku z něj neuděláte formát PDF. Proč jste si nezkusil nahrát makro s exportem jak radil pan Mrázek? Zkuste si to makro nejdřív nahrát, podívat se co uvnitř, a pak se ptejte co vám nebude jasné.
Kamil

Poslat zprávu | Profil
[#1952] | Publikováno: 01.05. 2011 - 16:34
Ja som si to makro nahraval a potom som tolko prerabal a prerabal ze som prerobil celu podstatu. No nic tak idem nato odznova.
Kamil

Poslat zprávu | Profil
[#1954] | Publikováno: 01.05. 2011 - 20:23
No tak som si nastudoval metodu ExportData...
A uz to tusim funguje ako ma...
Teraz by som potreboval este vediet ako to dostat do toho pekneho tvaru v akom mate tie makra vy.
Ing Jan Cinert

Poslat zprávu | Profil
[#1955] | Publikováno: 01.05. 2011 - 21:18
Myslíte udělat k tomu nějaký user friendly interface? To s obyčejným catscriptem nejde, buď musíte začít s catvba (integrováno v Catii) nebo se pustit do něčeho jiného (VB, .NET, C). Ať tak nebo tak, jestli jste nikdy v ničem neprogramoval, přeju pevné nervy a hodně trpělivosti. Teda pokud se do toho pustíte.
Kamil

Poslat zprávu | Profil
[#1957] | Publikováno: 02.05. 2011 - 10:05
Takze v Catii to pojde cez ten skript catvba?
A odkial treba zacat, vlastne?
Ing Jan Cinert

Poslat zprávu | Profil
[#1958] | Publikováno: 02.05. 2011 - 12:04
Tools - Macros - Visual Basic editor ...
Kamil

Poslat zprávu | Profil
[#1960] | Publikováno: 02.05. 2011 - 17:36
Uz ani neviem ako dlho robim s Catiou ale stale je v nej co objavovat.
Myslim ze temu mozeme zamknut.
Ing Jan Cinert

Poslat zprávu | Profil
[#1961] | Publikováno: 02.05. 2011 - 19:53
Chtěl bych se tomuto tématu věnovat víc, popsat základy integrovaného vba a maker všeobecně. Chtělo by to jen víc času.
Kamil

Poslat zprávu | Profil
[#1962] | Publikováno: 02.05. 2011 - 20:35
No maly navod pre tvorbu nejakeho jednoducheho interface by dost bodlo.


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.