Diskuzní fórum, poradna
?CAD diskuze, rady, výměna zkušeností

|
Odpovědět ![]() |
archiv |
Autor | |
Marlowwe ![]() Diskutér ![]() Přihlášen: 09.kvě.2008 Používám: acad 2008 Stav: Offline Bodů: 45 |
![]() Zasláno: 20.kvě.2009 v 09:56 |
Dobrý den, chtěl bych se zeptat, jestli nejde nějak nastavit, aby se výkres automaticky uložil : Název výkresu_datum (např.: Půrodys1.NP_090520 -rok/měsíc/den) a aby se uložil jako nový soubor při kliknutí na uložení (i během práce). Hledal jsem to v nastavení, ale nenašel jsem to.
Doufma že jsem to popsal srozumitelně Díky za rady |
|
![]() |
|
Seiner ![]() CAD/BIM manager ![]() Přihlášen: 01.říj.2004 Lokalita: ČR (PA) Používám: Mechanical 2017, Inventor 2017 a starší Stav: Offline Bodů: 1662 |
![]() |
Že by to nějak uměl AutoCAD, si neuvědomuji. Teoreticky by šlo udělat makro, které by si vzalo název souboru a doplnilo ho datem. Něco jako: (strcat (getvar "DWGPREFIX")(SUBSTR (GETVAR "dwgname")
1(-(strlen(getvar "dwgname"))4))"_"(rtos(getvar "cdate")2 0)".dwg") Problém ale vidím v tom, jak zjistit, jestli původní název už datum obsahuje, nebo ne a podle toho rozhodovat, jestli ho doplnit, nebo přepsat.
Logičtější by asi bylo, kdyby se jméno souboru bralo třeba z razítka. Ale to už záleží na vašich podmínkách.
|
|
Vítězslav Seiner
Chrudim |
|
![]() |
|
Marlowwe ![]() Diskutér ![]() Přihlášen: 09.kvě.2008 Používám: acad 2008 Stav: Offline Bodů: 45 |
![]() |
Myslel jsem to tak, že se např.:
1. udělá se startovací výkres s Názvem- Půdorys1.NP 2. uloží se a vznikne- Půdorys1.NP_090520 3. uloží se znovu a vznikne- Půdorys1.NP_090520_2 (3, 4.....) pokud se to uloží v ten samý den a pokud se uloží až druhý den- datum se přepíše na- Půdorys1.NP_090521 Tak nějak to udělat, aby se to dalo udělat (rozhodnout), zda uložit jako nový nebo jen přepsat, popřípadě ještě uvážit automatické ukládání (z důvodu ztrát dat, pak by tam bylo vytvořeno x-desítek souborů) PS: kam se pak to makro zkopíruje. Díky |
|
![]() |
|
johny ![]() TOP uživatel ![]() Přihlášen: 24.led.2006 Lokalita: ČR (JM) Používám: C3D 2024 Stav: Offline Bodů: 1741 |
![]() |
Zkuste toto... 3. bod to nedělá, ani to nedělejte přes Uložit jako... protože nebude fungovat to testování. Asi by to šlo dodělat, kdyby výchozí byl třeba pro dnešek JmenoSouboru_20090520.1.dwg (aby to mělo pevný počet cifer,tečka aby to celé bylo číslo, čili max 9 denních verzí).
Jinak jestli neumíte pracovat s programy, tak kód uložete přes Notepad např jako SaveAs_Date.lsp (lsp nutné) někam... (já dávam do AutoCad/Suppotr/Moje....). Tento soubor načtěte (Nástroje/Autolisp/Načíst aplikaci...) - načte se teď a také uložte do schránky (Nástroje/Autolisp/Načíst aplikaci/Obsah) - načte se ve všech dalších výkresech. Program spustíte napsáním SAD (jako SaveAsDate) do příkazového řádku, ale můžete si naň udělat v CUI ikonu nebo zkratku... jak chcete... Btw. Za "_saveas" je uvedeno "2000" to je verze dwg souboru... pokud používáte 2004, pak to přepiště, když 2007, pak stačí jen "". Možná by šlo aby to udělalo automaticky dle toho co máte uloženo v Možnostech jako výchozí... nevím v jaké proměnné to je, snad mě někdo doplní... (defun C:SAD ( / Path LastDate) (setvar "FILEDIA" 0) (if (numberp (setq LastDate (read (SUBSTR (GETVAR "dwgname") (-(strlen(getvar "dwgname"))11) 8)))) (if (eq LastDate (read (rtos(getvar "cdate")2 0))) (command "_save" "" "_y") ;today ; automatic overwritten (command "_saveas" "2000" (strcat (getvar "DWGPREFIX") ;is date, not today, ask for overwrite (SUBSTR (GETVAR "dwgname") 1 (-(strlen(getvar "dwgname"))13)) "_" (rtos(getvar "cdate")2 0) ".dwg"))) (command "_saveas" "2000" (strcat (getvar "DWGPREFIX") ;not date, ask for overwrite (SUBSTR (GETVAR "dwgname") 1 (-(strlen(getvar "dwgname"))4)) "_" (rtos(getvar "cdate")2 0) ".dwg"))) (setvar "FILEDIA" 1) (princ) ) Upravil johny - 20.kvě.2009 v 12:07 |
|
![]() |
|
Seiner ![]() CAD/BIM manager ![]() Přihlášen: 01.říj.2004 Lokalita: ČR (PA) Používám: Mechanical 2017, Inventor 2017 a starší Stav: Offline Bodů: 1662 |
![]() |
Tak nějak jsem to i myslel. Ještě jde o to, jestli na tom dělá jeden člověk, nebo víc člověků :-). Pak by asi bylo dobré také testovat, zda v úložišti již existuje takový soubor (FINDFILE ...). Co se týká načítání definované funkce, preferuji atomatické načítání (AUTOLOAD) v souboru .mnl. Pak se načítá jen to, co se používá.
|
|
Vítězslav Seiner
Chrudim |
|
![]() |
|
johny ![]() TOP uživatel ![]() Přihlášen: 24.led.2006 Lokalita: ČR (JM) Používám: C3D 2024 Stav: Offline Bodů: 1741 |
![]() |
Ten (command "SaveAs...") je otevřenej ... přepsání otestuje a nechá uživatele rozhodnout. S více uživateli nemám zkušenosti, ale nebude si to SaveAs... taky nějak hlídat?
|
|
![]() |
|
Seiner ![]() CAD/BIM manager ![]() Přihlášen: 01.říj.2004 Lokalita: ČR (PA) Používám: Mechanical 2017, Inventor 2017 a starší Stav: Offline Bodů: 1662 |
![]() |
Ano - máte pravdu, pokud rezignujete na ten požadavek číslování souborů v jednom dni. IMHO mi ale přijde čistší řešení přes nějaký systém správy dokumnetů. Ale to je OT. |
|
Vítězslav Seiner
Chrudim |
|
![]() |
|
Marlowwe ![]() Diskutér ![]() Přihlášen: 09.kvě.2008 Používám: acad 2008 Stav: Offline Bodů: 45 |
![]() |
jj tak nějak jsem to myslel,
PS: bude na tom pracovat jen jeden člověk Díky...vyzkouším a kdyžtak se ještě zeptám...Díky |
|
![]() |
|
Marlowwe ![]() Diskutér ![]() Přihlášen: 09.kvě.2008 Používám: acad 2008 Stav: Offline Bodů: 45 |
![]() |
jj je to dobrý...ale když dám uložit tak se mi soubor z Půdorys_20090520.1 přejmenuje na Půdorys_2_20090520, nešlo by aby se to přejmenovalo na Půdorys_20090520.2?? (Protože pak se to seřazuje podle pořadí 1,2,3.. a ne podle datumu a pořadí) a když pak dám opět SAD, tak se mě to zeptá jestli chci přepsat---dám N (jako ne) a nefunguje to. Díky za radu
|
|
![]() |
|
cestár ![]() TOP uživatel ![]() Přihlášen: 27.říj.2006 Lokalita: Slovensko Používám: Civil 3D 2018 Stav: Offline Bodů: 313 |
![]() |
... a neobsahuje to všetko Vault ?
|
|
![]() |
|
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ů: 21898 |
![]() |
Ano, obsahuje. Navíc řeší i situace, kde je výkres odkazován jako Xref či jiná externí reference, stará se o komentování revizí, odstraňování nepotřebných starších verzí, atd.
Přejmenovávání verzí souborů je jen pro hodně zjednodušené jednouživatelské scénáře použití.
|
|
![]() |
|
Seiner ![]() CAD/BIM manager ![]() Přihlášen: 01.říj.2004 Lokalita: ČR (PA) Používám: Mechanical 2017, Inventor 2017 a starší Stav: Offline Bodů: 1662 |
![]() |
Přestože v Autolispu jde udělat kde-co, obávám se, že tohle bude dost tvrdý oříšek. Funkce Findfile totiž neumožňuje zástupné znaky a já momentálně nevím, jak zjistit, jestli v úložišti je už soubor s dnešním datem a libovolným indexem. V navrženém kódu je navíc chybička - havaruje, pokud ektuální jméno souboru je kratší, jak 11 znaků nebo má právě 11 znaků. Je třeba ošetřit. třeba: (defun C:SAD ( / Path ldate) Přepínání FILEDIA je zbytečné.
To, že při odmítnutí přepsání se nic nezapíše, není chyba, ale tak je to napsané - zkuste se zorientovat v kódu.
PS. Na tomto místě bych připomenul, že to byl můj návrh, použít nějaký EDM :-)) (Parafráze na Cestu do Liptákova)
|
|
Vítězslav Seiner
Chrudim |
|
![]() |
|
johny ![]() TOP uživatel ![]() Přihlášen: 24.led.2006 Lokalita: ČR (JM) Používám: C3D 2024 Stav: Offline Bodů: 1741 |
![]() |
Tak jsem to ještě trochu upravil... pridal ty denní verze.
Funguje to tak, že to hledá znaky "_20"... když je najde a zároven za "_" je 8 čísel, pak to vyhodnotí jako datum. Ten pokud je dnešní pak, za k datumu připočte 0.1 a uloží. Pokud není dnešní, pak přidá/nahradí za dnešní datum. Pokud si nakonec názvu (za datum) něco připíšete (třeba "pomocny"), pak to nezachová a uloží novou denní verzi bez tohoto. Pokud budoucí soubor už existuje, pak se zeptá na přepis- když dáte ano, pak přepíše, když ne tak NIC, a musíte si udělat co chcete sám (typicky, když aktuálně nepracujete v poslední denní verzi - děláte v 20000521.2, ale už existuje .3, pak vám nenabídne .4, ale zeptá se na přepsání .3, a příp. skončí.) Ps. Máte max 10 denních verzí, snad je to dost :) (defun C:SAD ( / Path LastDate DatePos) (if (and (setq DatePos (vl-string-search "_20" (GETVAR "dwgname"))) (numberp (setq LastDate (read (SUBSTR (GETVAR "dwgname") (+ DatePos 2) 8))))) (if (eq LastDate (read (rtos(getvar "cdate")2 0))) (if (= (rtos (- (atof (SUBSTR (GETVAR "dwgname") (+ DatePos 2) 10)) (atoi (SUBSTR (GETVAR "dwgname") (+ DatePos 2) 10))) 2 1) "0.9") (princ "\nDosáhl jsi již 10. denní verze, program neumožňuje uložení další.") (command "_saveas" "2000" (strcat (getvar "DWGPREFIX") ;is date, adds new day's version (+0.1) (SUBSTR (GETVAR "dwgname") 1 DatePos) "_" (rtos (+ (atof (SUBSTR (GETVAR "dwgname") (+ DatePos 2) 10)) 0.1) 2 1) ".dwg"))) (command "_saveas" "2000" (strcat (getvar "DWGPREFIX") ;is date, not today, ask for overwrite (SUBSTR (GETVAR "dwgname") 1 DatePos) "_" (rtos(getvar "cdate")2 0) ".dwg"))) (command "_saveas" "2000" (strcat (getvar "DWGPREFIX") ;not date, ask for overwrite (SUBSTR (GETVAR "dwgname") 1 (-(strlen(getvar "dwgname"))4)) "_" (rtos(getvar "cdate")2 0) ".dwg"))) (princ) ) PS. Moc jsem to netestoval, to zkuste sám... :) Upravil johny - 21.kvě.2009 v 10:23 |
|
![]() |
|
Seiner ![]() CAD/BIM manager ![]() Přihlášen: 01.říj.2004 Lokalita: ČR (PA) Používám: Mechanical 2017, Inventor 2017 a starší Stav: Offline Bodů: 1662 |
![]() |
Ta finta s hledáním _20 není špatná. Akorát si uživatel musí nýt vědom, že tento řetězec nesmí použít jinde v názvu.
Další omezení je v tom, že předpokládáte, že se pracuje vždy s poslední verzí. Havárie nehrozí (saveas upozorní na přepsání).
|
|
Vítězslav Seiner
Chrudim |
|
![]() |
|
Seiner ![]() CAD/BIM manager ![]() Přihlášen: 01.říj.2004 Lokalita: ČR (PA) Používám: Mechanical 2017, Inventor 2017 a starší Stav: Offline Bodů: 1662 |
![]() |
no, pokud by se někomu ještě chtělo v tom pokračovat, tak seznam výkresů stejného jména se stejným datem v názvu by se dal získat třeba:
(vl-directory-files(vl-filename-directory (strcat(getvar
"dwgprefix")(getvar "dwgname"))) (strcat(SUBSTR (GETVAR "dwgname") 1 (+(vl-string-search (rtos(getvar "cdate")2 0) (GETVAR "dwgname"))8))"*.dwg")) |
|
Vítězslav Seiner
Chrudim |
|
![]() |
|
Seiner ![]() CAD/BIM manager ![]() Přihlášen: 01.říj.2004 Lokalita: ČR (PA) Používám: Mechanical 2017, Inventor 2017 a starší Stav: Offline Bodů: 1662 |
![]() |
Tak kahle by to snad mohlo hrát požadovanou písničku :-) |
|
Vítězslav Seiner
Chrudim |
|
![]() |
|
johny ![]() TOP uživatel ![]() Přihlášen: 24.led.2006 Lokalita: ČR (JM) Používám: C3D 2024 Stav: Offline Bodů: 1741 |
![]() |
Už to trošku dostává na robustnosti... (což nebyl až tak můj záměr :) Dalším cyklem, ikdyž asi jednodušším, by šlo ošetřit aby to fungovalo i kdyby v názvu bylo "_20" vícekrát...
Jinak nejspíš nedopatřením při kopírování vznikla na 4. řádku od konce chybka, spíš mi to připomíná html než lisp, díky které nefunguje to základní... přidání data souboru bez data. Upravil johny - 22.kvě.2009 v 08:48 |
|
![]() |
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,441 sekund.