Diskuzní fórum, poradna
CAD diskuze, rady, výměna zkušeností |
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 360, 3ds Max a s dalšími CAD 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 Systems (CAD Studio) - přímá podpora pro zákazníky funguje na helpdesk.cadstudio.cz
zjištění dat bloku v rozvrženích |
Odpovědět | Stránka 12> archiv |
Autor | |
Ferdinand
TOP uživatel Přihlášen: 01.říj.2004 Lokalita: ČR (JM) Používám: AutoCAD2004 (EN) na Windows XP Stav: Offline Bodů: 1904 |
Téma: zjištění dat bloku v rozvrženích Zasláno: 28.lis.2008 v 14:05 |
Chtěl bych se dopídit, zda lze přiřadit do proměnných (třeba VADNO, VAREV, VATI1) různé hodnoty VALUE některých (vždy těch stejných tří) atributů bloku stejného názvu z různých rozvržení. Něco jako filtr pro 3 různé TAGy (DOC_NO. , REV. , TITLE_1) v bloku RAZ--T1 pro různé CTAB.
Osvělím blíže na příkladu:
výkres má celkem 17 rozvržení
-vytvořit list layoutů (to dokážu)
->cyklus: přepni do 1. layoutu
-zjisti v bloku RAZ--T1 hodnoty u TAGů v tomto layoutu:
DOC_NO. -> VADNO
REV. -> VAREV
TITLE_1 -> VATI1
...
sestavení řetězce z VADNO a VAREV
podmíněná funkce dle VATI1
...
-přepni do následujícího layoutu
->po vyčerpání všech 17 - konec cyklu
|
|
-FerTh-
|
|
chlebovsky
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
Zasloužilý člen Přihlášen: 18.čer.2007 Lokalita: ČR (JM) Používám: Autocad R9 - 2022 Stav: Offline Bodů: 112 |
Zasláno: 04.pro.2008 v 16:50 |
získat jakékoliv informace lze z čehokoliv ať je to kdekoliv. Jen záleží natom jak to máte udělaný. Když pošlete to DWG s těma blokama dá se na to koknout. Dle toho Vašeho popisu, mi to moc jasný není :-(
Dále je tam dotaz ohledně nějakého přiřazení, všeobecně, k jakékoliv entitě, úsečka, křivka, šrafa... ale i blok, můžete přiřadit téměř jakýkoliv seznam rozšířených dat, tzv XDATA.
Trochu bych pochopil že v podstatě požadujete aby :
na každém rozvržení byl blok a ten měl 3 údaje, prostě nějaké přidělené data.
A pak z toho chcete vytvořit seznam aby to vyhledalo všechny bloky a načetlo z nich ty údaje.
Možná jsem řešil něco podobného. V rozvržení mám popisovou tabulku. Tam klasické texty, projektant, datum, číslo výkresu......
A pak mám udělanou funkci na tu když kliknu tak mi to vytvoří seznam výkresů včetně datumů, názvů..... atd
Řeším to tak že na 1 rozvržení mám napsaný text, tomu textu přidělím rozšířená data s vlastností "PROJEKTANT" a pak jen samotný text přepíšu na ing. Martin Chlebovský
to udělám pro všechny texty.
Takže mám jakoby vytvořenou šablonu s 1 rozvržením, to si nakopčím kolikrát potřebuju, vyplním údaje.
Pak kliknu na tu funkci a vyjede mi dialog kde mám jednotlivé položky a odpovídající texty, to pak můžu exportnout do excelu.
Když tak dejte vědět, a dáme to nějak dokupy.
|
|
Ing. Martin Chlebovský
www.kde-je-auto.cz GPS monitoring provozu vozidel a osob. WebDeveloper. Programátor aplikací pro Autocad a MS Office. Tvorba WWW aplikací. Modelování domů a staveb.&l |
|
Ferdinand
TOP uživatel Přihlášen: 01.říj.2004 Lokalita: ČR (JM) Používám: AutoCAD2004 (EN) na Windows XP Stav: Offline Bodů: 1904 |
Zasláno: 05.pro.2008 v 14:43 |
Takže ten princip nyní trošku podrobněji:
V bloku RAZ--T1 jsou atributy (hodně - je to roh. razítko). Potřebuji znát v každém rozvržení (je jich 17):
1. pro TAG atributu s názvem DOC_NO. hodnotu VALUE tohoto atributu přiřadit proměnné VADNO - to neumím
2. pro TAG atributu s názvem REV. hodnotu VALUE tohoto atributu přiřadit proměnné VAREV - to neumím
3. pro TAG atributu s názvem TITLE_1 hodnotu VALUE tohoto atributu přiřadit proměnné VATI1 - to neumím
4. pro TAG atributu s názvem TITLE_2 hodnotu VALUE tohoto atributu přiřadit proměnné VATI2 - to neumím
5. V akt. rozvržení je z těchto hodnot vždy sestaven řetězec (=název výstupního souboru pdf)
(setq NNR (strcat VADNO "_" VAREV))
6. dle obsahu VATI1 a VATI2 je nastaven styl vykreslování (přiřazeno proměnné CTB) - něco jako
(if (or (= VATI1 "FOUND*")(= VATI1 "FOUND*")))(setq CTB "LASER-1.ctb"))
7. název bloku "0PZ*" (=rámeček, v každém rozvržení jiný) přiřadit proměnné FR a dle toho přiřadit proměnné FORMAT kód formátu (např. FR="0PZA0" => FORMAT="A0 (841.00 x 1189.00 MM)" atd.) - to dokážu
(Dík za trpělivost)
|
|
-FerTh-
|
|
chlebovsky
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
Zasloužilý člen Přihlášen: 18.čer.2007 Lokalita: ČR (JM) Používám: Autocad R9 - 2022 Stav: Offline Bodů: 112 |
Zasláno: 05.pro.2008 v 20:16 |
1) je třeba sestavit seznam rozvržení a jejich názvů, jestli to jde nějak popořadě, dle názvů nebo jak to záleží na tom jak to máte tvořené, ale každopádně
a) seznam rozvržení se získá :
(setq roz (dictsearch (namedobjdict) "ACAD_LAYOUT"))
toto vám vrátí seznam kde je vždy
(3 . "P1") (350 . <Entity name: 7efd6448>)
x krát posobě dle toho kolik tam máte rozvržení včetně modelu a dalších parametrů
3 znamená název, 350 znamená entitu která charakterizuje samotné rozvržení
dále když si dáte (entget a té 350 entity) vyjede to info o tom rozvržení - tiskárnu a tak dále
2) jak dojít k danému bloku v daném rozvržení
vím že blok je RAZ--T1 a rozvrzeni trebas ROZ-1
pak blok je
(setq ent (ssget "X" (list (cons 0 "INSERT")(cons 2 "RAZ--T1")(cons 410 "ROZ-1"))))
vrátí vám to výběrovou množinu jejiž prvky získáte
(setq blok (ssname ent 0))
a máte vlastně daný blok v daném rozvržení
to vše musíte v ciklu dle počtu těch 350 v tom ROZ
3) máme blok a jak získat dané atributy
(setq att1 (entnext blok))
(setq att2 (entnext att1))
(setq att3 (entnext att3))
tak dlouho dokud nebude (entget attI) -> 0."SEQUEND")
pak jste na konci seznamu atributu, a někde mezi nimy musely být ty Vaše atributy.
dejme tomu že :
(setq data (entget att1))
to je náš blok s TAGEM REV
0 . "ATTRIB" že jedná o atribut
410 . "ROZ-1" že je v rozvržení ROZ-1
poloha, hladina, adalší a další a další až
1 . "VALUE" a to musíme změnit
(setq data1 (subst (cons 1 "POKUS")(assoc 1 data) data))
kde "POKUS" může být klidně ta Vaše proměnná VAREV
poté se provede aktualizace toho atributu a to :
(entmod data1)
a je hotovo.
Tak pro všechny atributy pro všechny rozvržení
A to bych řek že je vše ?
Když tak napište a budeme pokračovat.
S pozdravem Martin. |
|
Ing. Martin Chlebovský
www.kde-je-auto.cz GPS monitoring provozu vozidel a osob. WebDeveloper. Programátor aplikací pro Autocad a MS Office. Tvorba WWW aplikací. Modelování domů a staveb.&l |
|
Ferdinand
TOP uživatel Přihlášen: 01.říj.2004 Lokalita: ČR (JM) Používám: AutoCAD2004 (EN) na Windows XP Stav: Offline Bodů: 1904 |
Zasláno: 08.pro.2008 v 09:24 |
ad1a. Tohle jsem ještě nikde neviděl, kde chodíte na ty příkazy? Věděl jsem jenom, že lze získat názvy rozvržení pomocí (layoutlist)
tj. seznam ("ROZ1" "ROZ2" ...)
ad2. To vím, jde mi o to, že v cyklu nemohu psát konkrétní název rozvržení ale vždy další název z (layoutlist). Takže by tam mělo asi být
(cons 410 LAYT1)
přičemž
(setq LAYTL (layoutlist))
(setq i 0)
(while (< i (sslength LAYTL)) (command "_layout" "_S" (nth i LAYTL)) ) (setq LAYT1 (nth i LAYTL)) Takže nevím, jak to tam dostat když uvažuji takhle
(setq RT1 (ssget "_X" (list (cons 0 "INSERT") (cons 2 "RAZ--T1") (cons 410 LAYT1))))
(if (/= RT1 nil) (progn (setq E (ssname RT1 0)) (setq S0 (entget E)) ;;...a co sem??
ad3. Nechci měnit hodnoty atributu - chci jenom získat jejich hodnotu a ty hodnoty použít dál.
Proč je tam (cons 410 ...) když jméno rozvržení je pod kódem 3 (jak jste to psal výše)? Ovšem v obou případech dostanu nil . Upravil Ferdinand - 11.pro.2008 v 09:15 |
|
-FerTh-
|
|
Ferdinand
TOP uživatel Přihlášen: 01.říj.2004 Lokalita: ČR (JM) Používám: AutoCAD2004 (EN) na Windows XP Stav: Offline Bodů: 1904 |
Zasláno: 11.pro.2008 v 16:53 |
Pořád to není dobrý.
|
|
-FerTh-
|
|
chlebovsky
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
Zasloužilý člen Přihlášen: 18.čer.2007 Lokalita: ČR (JM) Používám: Autocad R9 - 2022 Stav: Offline Bodů: 112 |
Zasláno: 13.pro.2008 v 09:37 |
jak píšete seznam můžete sehnat i touto cestou, možná lepší :-)
pokud používáte pro výběr ssget "_X" myslím si a nepoužívám to, nemusíte se do daného rozvržení vůbec přepínat, takže ten command "_lay... muzete uplne vynechat. SSget "_X" totiz pracuje s databazi nikoli s monitorem
pak do hodnoty LAYT1 načítáte název layoutu - ok
pak do RT1 vyhledáte příslušný blok - ok
máte kontrolu existence bloku - ok
pak získáte jeho jméno entity a jeho data vložíte do SO - eeee
to už je zbytečný, protože pokud máte název bloku, tak jeho atributy získáte pomoci
(entnext E) tím získáte první atribut
rekneme (setq atr (entnext E))
dalsi atribut pak (setq atr (entnext atr))
atd.. tak dlouho dokud to nebude ten sequend
Takže napřed musíte z toho E dostat další atribut, a pak cyklem dokud to nebude seq....
když dostanete ten daný atribut je rekneme v ATR
tak (setq DATA-ATR (entget ATR))
a máte zase asociativní seznam dat příslušného atributu a z toho můžete pomoci (setq text (cdr (assoc **** DATA-ATR))) získat příslušný text
kde **** je číslo kodu příslušného textu
ve vašem případě
(setq text (cdr (assoc 1 DATA-ATR)))
dále se ptáte proč nahoře je v seznamu 3 a dole 410
každá entita ve výkresu je vlastně uložená v databázi daného DWG, a z ní se nějakým způsobem zobrazuje na monitoru.
Vy většinou pracujete na monitoru, takže pomoci nějakého příkazu "command" vytvoříte na monitoru něco, a to se uloží do databaze.
Pomoci lsp příkazu, entnext, entmakex, entget.... pracujete přímo s databazi, aniz by to nějak ovlivnovalo monitor, takže jste schopen zjistit daleko víc info o daných prvcích.
např layout je zapsán v seznamu a je tvořen právě nějakým způsobem že ke 3 přiřazuje název
naopak každá entita je tvořená tak, že ke každé 410 je přiřazeny název.
pokud by jste chtěl zjistit kde který údaj je a souvislosti mezi všemi prvky, at atribut a blok, srafy, reaktory atd. doporučuju výkres uložit ve formátu DXF a otevřít v nějakém editoru např notepad.
Sice si trošku pohledáte a hodně počtete, ale je to dost dobrý na to aby jste pochopil samotnou databazi entit.
Počínaje rozvrzenim, hladinama, az po samotne entity, pak i v helpu pod DXF referencni přiručka, nebo tak nejak, jsou samotné kody vypsány.
Každopádně, zkuste a kdyby to zase nešlo, dejte vědět, budeme pokračovat.
S pozdravem Martin.
|
|
Ing. Martin Chlebovský
www.kde-je-auto.cz GPS monitoring provozu vozidel a osob. WebDeveloper. Programátor aplikací pro Autocad a MS Office. Tvorba WWW aplikací. Modelování domů a staveb.&l |
|
Ferdinand
TOP uživatel Přihlášen: 01.říj.2004 Lokalita: ČR (JM) Používám: AutoCAD2004 (EN) na Windows XP Stav: Offline Bodů: 1904 |
Zasláno: 15.pro.2008 v 14:42 |
Přiznávám, že když jsem se snažil využít možnosti učení se zde (v sekci Školení/Výuka), tak jsem to neshledal příliš přehledným. Dost těžko se v tom hledá, je to příliš všeobecný, bez konkrétních příkladů. Někdo jako já (tj. neprogramátor) potřebuje metodu "Když napíšete TOHLE tak se stane TOTO a výsledek vypadá TAKTO. Předpokladem je PREDPOKLAD." - kde namísto VELKÝCH PÍSMEN mají být konkrétní řetězce syntaxu. Děkuji Martinovi, že se mne ujal a sželelo se mu nad mou nevědomostí. Navíc mám svou hlavu a když zatvrdne, tak to se mnou nic není...
Proč ale mi to vrací pořád nil, když
(setq RT1 (ssget "_X" (list (cons 0 "INSERT") (cons 2 "RAZ--T1") (cons 410 LAYT1))))
? Zkoušel jsem to ve výkresu, kde blok RAZ--T1 je 17-krát přítomen.
Jakýsi první nástin toho celého procesu viz ->zde Upravil Ferdinand - 15.pro.2008 v 14:44 |
|
-FerTh-
|
|
chlebovsky
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
Zasloužilý člen Přihlášen: 18.čer.2007 Lokalita: ČR (JM) Používám: Autocad R9 - 2022 Stav: Offline Bodů: 112 |
Zasláno: 15.pro.2008 v 15:26 |
pokud "_X" máte velké X
pokud se blok opravdu jmenuje "RAZ--T1" velké písmena
pokus LAYT1 je opravdu přesný název rozvržení včetně mezer....
pokud tam ten blok je, tak není jediný důvod aby to bylo nilové :-)
jinak když k tomu LSPéčku přibalíte i to DWG tak to můžu otestovat v reálu, já si tady u sebe hraju jen s daty a né s realitou, třeba tam je nějaký detail co jsem přehlídl. Pošlete to DWG a to LSP (už mám) takže na to kouknu.
Pak to i upravím.
|
|
Ing. Martin Chlebovský
www.kde-je-auto.cz GPS monitoring provozu vozidel a osob. WebDeveloper. Programátor aplikací pro Autocad a MS Office. Tvorba WWW aplikací. Modelování domů a staveb.&l |
|
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: Dodáváme produkty Autodesk Stav: Offline Bodů: 21490 |
Zasláno: 15.pro.2008 v 16:20 |
Velikost písmen je nepodstatná. Ten Ferdinandův výraz je v pořádku (vyzkoušeno), za předpokladu, že LAYT1 je řetězcová proměnná obsahující název rozvržení - např:
(setq LAYT1 "Rozvržení1")
|
|
Ferdinand
TOP uživatel Přihlášen: 01.říj.2004 Lokalita: ČR (JM) Používám: AutoCAD2004 (EN) na Windows XP Stav: Offline Bodů: 1904 |
Zasláno: 17.pro.2008 v 11:34 |
Pokud je tomu tak, a nezdržuji zbytečně, je to ->zde
Ve výkresu chci nechat pojmenování rozvržení původní. Upravil Ferdinand - 17.pro.2008 v 11:37 |
|
-FerTh-
|
|
chlebovsky
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
Zasloužilý člen Přihlášen: 18.čer.2007 Lokalita: ČR (JM) Používám: Autocad R9 - 2022 Stav: Offline Bodů: 112 |
Zasláno: 17.pro.2008 v 22:08 |
Chtěl jsem na to kouknout, ale nemám asi přístup na iprojekt :-(
Poraďte mi někdo co mám pro to udělat :-)
Dík.
|
|
Ing. Martin Chlebovský
www.kde-je-auto.cz GPS monitoring provozu vozidel a osob. WebDeveloper. Programátor aplikací pro Autocad a MS Office. Tvorba WWW aplikací. Modelování domů a staveb.&l |
|
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: Dodáváme produkty Autodesk Stav: Offline Bodů: 21490 |
Zasláno: 17.pro.2008 v 22:27 |
Přihlašovací jméno a heslo účtu pro výměnu souborů CAD Fóra je "cadforum". Viz otazníček:
|
|
chlebovsky
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
Zasloužilý člen Přihlášen: 18.čer.2007 Lokalita: ČR (JM) Používám: Autocad R9 - 2022 Stav: Offline Bodů: 112 |
Zasláno: 17.pro.2008 v 22:48 |
To jsem zkoušel, ale nic :-(
cadforum / cadforum
Přístup do [application/Files] odepřen. Příčina:Nejste členem projektu. |
|
Ing. Martin Chlebovský
www.kde-je-auto.cz GPS monitoring provozu vozidel a osob. WebDeveloper. Programátor aplikací pro Autocad a MS Office. Tvorba WWW aplikací. Modelování domů a staveb.&l |
|
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: Dodáváme produkty Autodesk Stav: Offline Bodů: 21490 |
Zasláno: 18.pro.2008 v 08:44 |
Aha, pane Ferdinand si vytvořil vlastní projekt - pak vás tedy musí přizvat osobně nebo nastavit oprávnění jeho projektu pro veřejný přístup.
|
|
chlebovsky
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
Zasloužilý člen Přihlášen: 18.čer.2007 Lokalita: ČR (JM) Používám: Autocad R9 - 2022 Stav: Offline Bodů: 112 |
Zasláno: 18.pro.2008 v 10:16 |
Díky, něco takového jsem předpokládal, takže p. Ferdinande, prosím preosím o přístupové údaje, klidně na martin@vchlebovska.eu díky moc.
A ještě poprosím p. Michla když ho tady vidím, sice je to mimo tento okruh otázky, ale jestli by mi mohl poradit jak udělat to, že se hlásím do fora ze 2 počítačů, a vždy se musím přihlašovat, když jsem pouze na jednom, hlásí se automaticky, ale jak přejdu na 2 kompl, v jiné firmě, musím se přihlásit znovu
DOMA a v PRACI - lze to nějak udělat ? Diky moc.
|
|
Ing. Martin Chlebovský
www.kde-je-auto.cz GPS monitoring provozu vozidel a osob. WebDeveloper. Programátor aplikací pro Autocad a MS Office. Tvorba WWW aplikací. Modelování domů a staveb.&l |
|
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: Dodáváme produkty Autodesk Stav: Offline Bodů: 21490 |
Zasláno: 18.pro.2008 v 15:33 |
Ochrana účtu při přístupu z jiného počítače je bohužel součástí kódu aplikace fóra. Také bych někdy uvítal zůstat přihlášený z více strojů.
|
|
Ferdinand
TOP uživatel Přihlášen: 01.říj.2004 Lokalita: ČR (JM) Používám: AutoCAD2004 (EN) na Windows XP Stav: Offline Bodů: 1904 |
Zasláno: 19.pro.2008 v 13:43 |
Aha, no jasně, na to jsem zapomněl - omluva; již napraveno.
|
|
-FerTh-
|
|
Pro technickou podporu CAD
kontaktujte Helpdesk
Odpovědět | Stránka 12> archiv |
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 2,102 sekund.