ARKANCE - globální Platinum partner Autodesk ARKANCE | KONTAKT - CZ | SK | EN | DE
Již 10.000+ CAD tipů. Přes 118.000 registrovaných u nás, celkem 1.092.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.
Katalog CAD bloků
RSS kanál - CAD tipy RSS tipy
RSS diskuze

Diskuze Diskuzní fórum, poradna

?
CAD diskuze, rady, výměna zkušeností

CAD Fórum - Homepage Veřejné diskuzní fórum k CAD aplikacím - ptejte se na libovolné otázky týkající se oboru CAx, podělte se o vaše znalosti a zkušenosti s programy AutoCAD, Inventor, Revit, Fusion, 3ds Max, Vault a s dalšími CAD/BIM/PDM aplikacemi. Zaregistrujte se nebo se přihlašte a zašlete váš příspěvek do odpovídajícího fóra. Viz další informace o CAD Fóru. Nechcete se registrovat? Zeptejte se v naší Facebook poradně.
Fórum nenahrazuje technický support firmy ARKANCE (CAD Studio) - přímá podpora pro zákazníky funguje na helpdesk.arkance-systems.cz
  FAQ FAQ  Prohledat fórum   Události   Registrovat Registrovat  Přihlásit Přihlásit

Téma uzavřenoBATCH

 Odpovědět Odpovědět archiv
Autor
splonk Zobrazit panel
CAD/BIM manager
CAD/BIM manager
Avatar

Přihlášen: 25.lis.2006
Lokalita: ČR (Pha)
Používám:
AutoCAD/ACA'21, '24, RVT'21, '24
Stav: Offline
Bodů: 1273
Přímý odkaz na tuto zprávu Téma: BATCH
    Zasláno: 25.led.2012 v 16:43
Dobry den pane Michl,
mohl byste se mi, prosim podivat na tento LISPik. Jedna se o Batch ktery po oznaceni "rootove" slozky otevira vsechny *.dwg soubory v ni. Pri otevirani provede prikazy ktere ma nadefinovane v Apploads.
Mam problem v tom ze mi nefunguje na Win7x64 :(. Na XPx86 SP3 to bezi bezproblemu.
 
Jedna se o nasledujici:
 



(defun c:batch (/ dir files total ct docs doc)
(defun listAllFiles (path ext /)
(apply 'append
(cons
(mapcar
(function (lambda(x) (strcat path "\\" x)))
(vl-directory-files path ext 1)
)
(mapcar
(function (lambda(x) (listAllFiles (strcat path "\\" x) ext)))
(cddr (vl-directory-files path nil -1)) ; to exclude "." and ".."
)
)
)
)
(if (and
(setq dir (getfiled "Select a directory to process..." "Start here" "" 33))
(setq dir (vl-filename-directory dir))
)
(if (setq files (listAllFiles dir "*.dwg"))
(progn
(vl-load-com)
(setq total (itoa (length files))
ct 0
docs (vla-get-documents (vlax-get-acad-object))
)
(foreach file files
(setq doc (vla-open docs file)
ct (1+ ct)
)
(prompt (strcat "\r" (itoa ct) " of " total " drawings processed."))
(command "_.delay" "1000")
(vla-close doc :vlax-false)
)
(vlax-release-object doc)
(vlax-release-object docs)
)
(prompt (strcat "\nNo files of that type found in " dir " !"))
)
(prompt "\nNo path specified!")
)
(princ)
)
;;Add the .lsp file you're going to use to process the drawings to the startup suite (command: APPLOAD or Tools>Load Application). This .lsp file should end with (command "qsave") to save the drawing. DO NOT have (command "close") anywhere in the file, as this will cause an access violation and crash AutoCAD, because AutoCAD sucks.
 
 
Predem dekuji
JASponza
 
JASponza

ACA (AutoCAD) 21, 24
RVT 21, 24

Win 10, 11 x64
Zpět nahoru
Vladimír Michl Zobrazit panel
Moderátor
Moderátor
Avatar
Arkance Systems

Přihlášen: 09.zář.2004
Lokalita: ČR (JČ)
Používám:
Implementujeme řešení Autodesk
Stav: Offline
Bodů: 21896
Přímý odkaz na tuto zprávu Zasláno: 25.led.2012 v 17:06
Na první pohled tam nic systémově závislého nevidím. Máte v obou případech nastavené stejně SDI a hlavně adresáře a seznam pro načítání sady APLČTI?
Vladimír Michl (moderátor)
ARKANCE CZ - arkance.world
(podpora viz helpdesk.arkance-systems.cz)
Zpět nahoru
splonk Zobrazit panel
CAD/BIM manager
CAD/BIM manager
Avatar

Přihlášen: 25.lis.2006
Lokalita: ČR (Pha)
Používám:
AutoCAD/ACA'21, '24, RVT'21, '24
Stav: Offline
Bodů: 1273
Přímý odkaz na tuto zprávu Zasláno: 25.led.2012 v 17:47
SDI mam na obou 0 (nula)
Adresare mam stejne.
Problem je na zacatku, zkusim popsat:
  • v APPLOAD nastavim lisy ktere chci aby se vykonali
  • do PRAZDNEHO vykresu naloaduju vyse zmineny lisp
  • zadam prikaz BATCH
  • vyskoci okenko (Windowsacke) kde browsuju na danou slozku :

  • Připojené náhledyPřihlaste se pro zobrazení plné verze - 20120125_174432_2012-01-25_1724.png

  • slozku vyberu, a kliknu na Otevrit
  • Okenko se zmeni na:

  • Připojené náhledyPřihlaste se pro zobrazení plné verze - 20120125_174549_2012-01-25_1719.png

  • Pak kliknu na Ulozit, a nic se nedeje :(, okenko tam porad vysi a nejde s tim nic delat...

Pritom, na XP se proces normalne spusti a toto prazdne DWGcko zacne postupne "otevirat" vsechny DWG soubory v one slozce.

Myslim si tedy, ze problem bude nekde v one smycce pri vybirani slozek... Ja tomu zase tak moc nerozumim :).
 
Dekuji :)
PS. Omluva za drobny dodatecny edit tohoto prispevku...
JASponza

ACA (AutoCAD) 21, 24
RVT 21, 24

Win 10, 11 x64
Zpět nahoru
Vladimír Michl Zobrazit panel
Moderátor
Moderátor
Avatar
Arkance Systems

Přihlášen: 09.zář.2004
Lokalita: ČR (JČ)
Používám:
Implementujeme řešení Autodesk
Stav: Offline
Bodů: 21896
Přímý odkaz na tuto zprávu Zasláno: 25.led.2012 v 22:39
Aha, ten (getfiled) je nějaký divný, zkuste tam:
 
(setq dir (getfiled "Select a directory to process..." "Start here" "dwg" 8))
Vladimír Michl (moderátor)
ARKANCE CZ - arkance.world
(podpora viz helpdesk.arkance-systems.cz)
Zpět nahoru
Seiner Zobrazit panel
CAD/BIM manager
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římý odkaz na tuto zprávu Zasláno: 26.led.2012 v 07:40
Jak se na to tak dívám, jedná se zřejmě o nedorozumnění. Dialog sice říká "Vyber složku pro začátek", ale ve skutečnosti chce vybrat jeden soubor dwg ze složky a z toho si pak určí cestu do složky. Asi je to tím, že autor nevěděl, jak se dotázat přímo na složku. (Já to nevím momentálně taky).
 
BTW. Je to sice excelentní ukázka programování ve vLispu a jsem rád, že už vím, že to jde. Ale stejně zůstanu asi u generátoru dávky (http://www2.chrudim.cz/seiner/programy/Davka.zip) - přijde mi, že mi dává víc možností.
Vítězslav Seiner

Chrudim
Zpět nahoru
pavelstyl Zobrazit panel
Zasloužilý člen
Zasloužilý člen

Přihlášen: 06.říj.2004
Lokalita: Czech Republic
Používám:
AutoCAD Mech 2025, SolidEdgeE 2025
Stav: Offline
Bodů: 226
Přímý odkaz na tuto zprávu Zasláno: 26.led.2012 v 08:01
Já pro nalistování složky používám následující kód:
(defun get_folder (d txt / Dir Item Path l)
 (if (> (strlen d) 4)
  (progn
   (setq l (substr d (strlen d) 1))
   (if (or (= l "\\") (= l "/"))
    (setq d (substr d 2))
   )
  )
 )
 (cond
  ((setq Dir (vlax-invoke (vlax-get-or-create-object "Shell.Application") 'browseforfolder 0 txt 1 d))
   (cond
    ((not (vl-catch-all-error-p (vl-catch-all-apply 'vlax-invoke-method (list Dir 'Items))))
     (setq Item (vlax-invoke-method (vlax-invoke-method Dir 'Items) 'Item))
     (setq Path (vla-get-path Item))
    )
   );end cond
  )
 );end cond
 (if Dir (vlax-release-object Dir))
 (if Path (setq Path (vl-string-translate "/" "\\" Path)))
 (if Path (setq DwgPath Path))
 (if path (if (= (substr path (strlen path) 1) "\\") (setq path (substr path 1 (- (strlen path) 1)))))
 path
)
 
Volám to
(setq adresar (get_folder "" "Zadej adresar")) 
Ten první parametr měl být pokus o zadání výchozí cesty, ale nějak to nefunguje a tak tam jsou ty prázdné úvozovky :-)
 
Třeba to někomu pomůže.
 
Pavel Štyl
Zpět nahoru
Seiner Zobrazit panel
CAD/BIM manager
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římý odkaz na tuto zprávu Zasláno: 26.led.2012 v 08:11

Ještě: domnívám se, pane Michle, že flag 8 není úplně to pravé. Pokud by byla z nějakého důvodu nastavena cesta do pracovního adresáře, přiřadí se do proměnné dir pouze jméno vybraného souboru bez cesty a následující příkaz neurčí správně složku.

Flag 33 mi taky není úplně jasný - vysvětluji si to, že to chce název nového souboru, ale neupozorňuje na přepsání.

Upravil Seiner - 26.led.2012 v 08:15
Vítězslav Seiner

Chrudim
Zpět nahoru
alfred Zobrazit panel
TOP uživatel
TOP uživatel

Přihlášen: 14.říj.2004
Lokalita: ČR (JČ)
Používám:
AutoCad MAP 2011
Stav: Offline
Bodů: 1675
Přímý odkaz na tuto zprávu Zasláno: 26.led.2012 v 08:16
To je dobré. ClapClap
Já používám pro výběd adresáře funkci "dos_getdir" z knihovny DOSLIB
http://www.en.emea.mcneel.com/doslib.htm

Ještě odtud používám dialog pro možnost výběru více souborů najednou - nemáte nějaký podobný příklad pro tuto příležitost? Bohužel GETFILED umožní výběr pouze jednoho souboru.
Předpokládám, že se by se pouze v řádku

(setq Dir (vlax-invoke (vlax-get-or-create-object "Shell.Application") 'browseforfolder 0 "zadej adresar" 1 ""))

browseforfolder zamění za nějaké jiné kouzelné slovo Embarrassed




Upravil alfred - 26.led.2012 v 08:23
Zpět nahoru
Seiner Zobrazit panel
CAD/BIM manager
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římý odkaz na tuto zprávu Zasláno: 26.led.2012 v 10:15
A ještě poznámečka. Otestoval jsem původní kód na Mechnicalu 2012 na stanici s Win7-64 a na stanici XP-32. Na obou pracuje bez problémů. Zakopanej pes bude někde jinde...
Vítězslav Seiner

Chrudim
Zpět nahoru
splonk Zobrazit panel
CAD/BIM manager
CAD/BIM manager
Avatar

Přihlášen: 25.lis.2006
Lokalita: ČR (Pha)
Používám:
AutoCAD/ACA'21, '24, RVT'21, '24
Stav: Offline
Bodů: 1273
Přímý odkaz na tuto zprávu Zasláno: 26.led.2012 v 15:10
Dobry den damy a panove,
Jsem rad, kdyz na CADForu vidim jak se vyvyji diskuze. To je urcite dobre. A o nejakem "svrbeni" nemuze byt ani rec :-).
Dekuji za vsechny zaslane podnety, priklady,.... Bouzel, moje znalosti programovani jsou omezene... Jsou omezene na ono "Ctrl+C, Ctrl+V" + "trochu zdraveho rozumu" s tim, ze obzvlast ta druha komponenta je cim dal hure dohledatelna. A hlavne, casova slozka je ten nejbolestnejsi clanek v celem procesu... Sice tusim o cem pisete ale urcite to neni tak, ze bich ted rovnou z mista nahradil cas puvodniho kodu napr. tim, co zaslal pan PavelStyl :-(. Kazdopadne dekuju / odivuju / a taktrochu zavidim :-).
 Ale abych se vratil na zacatek. Vyzkousel jsem radu pana Michla, funguje to, jenom musim vybrat nejkae dwg v danem souboru - to dwg tam ale v realu nemusim mit (pravda muzu ho tam umele vytvorit...). Jinak to funguje OK.
 Pan Seiner me ale, svym poslednim prispevkem,  navedl na myslenku to zkusit jeste jednou. A zakopanej pes je, zda se,v me "blbosti"... V onom druhem dialogovem okenku (vyz vyse 2nd. PrintScreen) staci kdyz do kolonky "Nazev souboru" napisu cokoliv a dam otevrit, pak to bezi bez problemu :-). Puvodne (a i na XP x86) mstcilo odkliknout s onim "Start here.*"... zrejmne drobny rozdil v UI dvou OS. A to mi (prozatim) staci :-)!!!
Tim nerikam, ze bi mi vadilo, kdyby nekdo vymenil cast puvodniho kodu za neco, co funguje lip a vyvesil to tady na CADForu ;-).
 
Kazdopadne, dekuji vsem za pomoc, moc!!!!!!
 
PS. LISP uveden na zacatku prosim pouzivat "na vlastni" nebezpeci. Zaprve, kazdy BATCH je tak trochu "ohubu" a zadruhe, kdyz spustim tento LISP v nejakem vykresu, akce probehne, pak uz zadny LISP do toho vykresu nemuzu nacist :-(. Proto ho vzdicky spoustim v onom "Drawing 1" :-)
 
Zdravim
JASponza
JASponza

ACA (AutoCAD) 21, 24
RVT 21, 24

Win 10, 11 x64
Zpět nahoru

Pro technickou podporu CAD
kontaktujte Helpdesk

Příbuzné CAD tipy:
Tip 7184:Dávkový tisk projektů Revitu.
Tip 9686:VIPDávkový převod souborů DWF na formát DWFx.
Tip 5802:VIPPřevodník hladin a dávkové operace.
Tip 2568:VIPDávkový tisk v Inventoru, dávkové publikování do PDF.
Tip 2270:VIPJak hromadně převést sadu výkresů do DXF formátu?
Tip 1519:VIPTisk přes Batch plot nerespektuje formát a tiskne stále na A4.


 Odpovědět Odpovědět

Přejít na fórum Oprávnění fóra Zobrazit panel



Stránka byla vygenerována za 0,383 sekund.