Již 10.000+ CAD tipů.
Přes 118.500 registrovaných u nás, celkem 1.094.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.
Diskuzní fórum, poradna
?CAD diskuze, rady, výměna zkušeností

Fórum nenahrazuje technický support firmy ARKANCE (CAD Studio) - přímá podpora pro zákazníky funguje na helpdesk.arkance-systems.cz
|
Odpovědět ![]() |
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ů: 1906 |
![]() Zasláno: 09.zář.2009 v 15:58 |
Ve výkrese mám 2 rozvržení, v každém je vložen po 1 bloku RAZ--T1 (obsahuje atributy). Pro extrakci dat z hodnot atributů chci vybrat 1. blok a to právě v akt. prostoru (většinou je to Layout):
(setq AA (ssget "_X"
(list (cons -4 "<AND") (cons 0 "INSERT") (cons 2 "RAZ--T*") (cons 410 (getvar "ctab")) (cons -4 "AND>") ) ) ) což mi vrací
nil
- nemohu přijít na to, proč, když podmínky jsou splněny? V případě zápisu ve tvaru
(setq AA (ssget "_X" '((-4 . "<AND") (0 . "INSERT") (2 . "RAZ--T*") (410 . (getvar "ctab")) (-4 . "AND>"))))
vrací
; error: bad SSGET list value
- proč?
|
|
-FerTh-
|
|
![]() |
|
alfred ![]() 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
TOP uživatel ![]() Přihlášen: 14.říj.2004 Lokalita: ČR (JČ) Používám: AutoCad MAP 2011 Stav: Offline Bodů: 1675 |
![]() |
nevim, zda se mi to dobre krome toho (getvar "ctab")
Zkuste tam zapsat primo hodnotu, nebo si to zjistete predem. |
|
![]() |
|
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ů: 21901 |
![]() |
V tom druhém zápise chybí (cons), ale ten první vypadá snad dobře. Nekomplikoval bych to tím AND - zřetězené podmínky jsou automaticky "and".
|
|
![]() |
|
alfred ![]() 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
TOP uživatel ![]() Přihlášen: 14.říj.2004 Lokalita: ČR (JČ) Používám: AutoCad MAP 2011 Stav: Offline Bodů: 1675 |
![]() |
Zkousel jsem to v MAPu 2006 a prvni moznost funguje. Druha ne.
|
|
![]() |
|
iand ![]() Nováček ![]() Přihlášen: 17.bře.2006 Lokalita: ČR (Pha) Používám: AutoCAD2004 Stav: Offline Bodů: 7 |
![]() |
Jakýkoli seznam, tedy i filtrační, lze zapsat dvěma způsoby:
1. pomocí apostrofu, např. '((0 . "INSERT")(410 . "1"))) 2. pomocí klíčového slova 'list', např. (list (0 . "INSERT")(410 . (getvar "ctab"))) Pokud je byť i jediná hodnota v seznamu proměná nebo výraz, funguje pouze druhý způsob. |
|
Ivan Anděl
ACAD2004CZ |
|
![]() |
|
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ů: 21901 |
![]() |
Nikoliv. Symboly "list" a "'" jsou v tomto případě naprosto rovnocenné. Zápis dle druhého způsobu nelze použít (chybí cons) - s LISTem to nijak nesouvisí.
|
|
![]() |
|
alfred ![]() 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
TOP uživatel ![]() Přihlášen: 14.říj.2004 Lokalita: ČR (JČ) Používám: AutoCad MAP 2011 Stav: Offline Bodů: 1675 |
![]() |
Neni to tak. pokud doplnim cons (cons 410 (getvar "ctab")) tak samotny tento vyraz mi vrati napr. (410 . "Model") pokud je to ale v celem vyrazu '((-4 . "<AND") (0 . "INSERT") (2 . "RAZ--T*") (cons 410 (getvar "ctab")) (-4 . "AND>")) vraci to ((-4 . "<AND") (0 . "INSERT") (2 . "RAZ--T*") (CONS 410 (GETVAR "ctab")) (-4 . "AND>")) coz je samozrejme spatne V listu '() nemohou byt promenne viz help "As an alternative to using the list function, you can explicitly quote a list with the quote function if there are no variables or undefined items in the list." Maly priklad: (setq a 5) (list 1 a) .......vrati (1 5) '(1 a) ...........vrati (1 A) |
|
![]() |
|
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ů: 21901 |
![]() |
Aha, to je pravda. Zápis:
(4 . (getvar "ctab"))
je chybný v každém případě (chybí cons), ale použití funkce quote (tedy ') zneplatní i tu cons verzi.
|
|
![]() |
|
Ferdinand ![]() TOP uživatel ![]() Přihlášen: 01.říj.2004 Lokalita: ČR (JM) Používám: AutoCAD2004 (EN) na Windows XP Stav: Offline Bodů: 1906 |
![]() |
Takže výrazy
(setq VYB1 (ssget "X" '((0 . "insert"))))
(setq VYB2 (ssget "_X" (list (cons 0 "insert")))) nejsou jedno a totéž? Mně se ale v obou případech vytvoří stejná (identická) výběrová množina.
Ještě něco:
pokud to zapíšu jako 3. způsob tj.
(setq S1
(entget (ssname (ssget "_X" (list (0 . "INSERT") (2 . "RAZ--*") (410 . (getvar "ctab")))) 0 ) ) ) tak mi to vrátí
; error: bad argument type: consp "INSERT" Upravil Ferdinand - 15.zář.2009 v 11:33 |
|
-FerTh-
|
|
![]() |
|
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ů: 21901 |
![]() |
Jsou "jedno a totéž". Jen v tom prvním nesmí být místo konstanty "insert" použita žádná funkce.
|
|
![]() |
|
Ferdinand ![]() TOP uživatel ![]() Přihlášen: 01.říj.2004 Lokalita: ČR (JM) Používám: AutoCAD2004 (EN) na Windows XP Stav: Offline Bodů: 1906 |
![]() |
A pokud to přepíšu na (setq S1
(entget (ssname (ssget "_X" (list (cons 0 "INSERT") (cons 2 "RAZ--*") (cons 410 (getvar "ctab")) ) ) 0 ) ) ) tak vrací
; error: bad argument type: lselsetp nil
a to i v případě, když dám namísto
(cons 410 (getvar "ctab"))
(cons 410 AP)
kde předtím jsem nadefinoval (setq AP (getvar "ctab"))
|
|
-FerTh-
|
|
![]() |
|
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ů: 21901 |
![]() |
Ten výběrový filtr je asi v pořádku - zřejmě jen není žádná entita, která by mu vyhovovala.
|
|
![]() |
|
Ferdinand ![]() TOP uživatel ![]() Přihlášen: 01.říj.2004 Lokalita: ČR (JM) Používám: AutoCAD2004 (EN) na Windows XP Stav: Offline Bodů: 1906 |
![]() |
V akt. prostoru (Rozvržení) je 100% přítomen blok s názvem RAZ--T1 anebo RAZ--T1n. Můžete to zkusit na nějaký Vaše 2 bloky, které mají podobný název?
Dále pak zjišťuji zda
(setq i 0)
(while (< i (sslength S1)) (setq E (ssname S1 i)) (setq E1 E) (while (/= "SEQEND" (cdr (assoc 0 (setq S2 (entget (setq E1 (entnext E1))))) ) ) (setq PROM (cdr (assoc 2 S2))) a podle toho se provede další operace
(cond
((= PROM "DOCUMENTID") (setq JM1 (cdr (assoc 1 S1))) ) ...
ale s hlášenýma error se nehnu dál...
|
|
-FerTh-
|
|
![]() |
|
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ů: 21901 |
![]() |
Vyzkoušeno - s výše uvedeným filtrem výběru to funguje normálně (blok musí být skutečně vložen v aktuálním rozvržení).
|
|
![]() |
|
Ferdinand ![]() TOP uživatel ![]() Přihlášen: 01.říj.2004 Lokalita: ČR (JM) Používám: AutoCAD2004 (EN) na Windows XP Stav: Offline Bodů: 1906 |
![]() |
Pro upřesnění: se kterým výběrem? S tím posledním?
|
|
-FerTh-
|
|
![]() |
|
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ů: 21901 |
![]() |
Ano, s tím vaším výběrovým filtrem (odesláno 11:43):
|
|
![]() |
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,392 sekund.