ARKANCE - globální Platinum partner Autodesk ARKANCE | KONTAKT - CZ | SK | EN | DE
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.
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řenovýběr bloku v akt. prostoru

 Odpovědět Odpovědět archiv
Autor
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ů: 21906
Přímý odkaz na tuto zprávu Téma: výběr bloku v akt. prostoru
    Zasláno: 15.zář.2009 v 15:55
Ano, s tím vaším výběrovým filtrem (odesláno 11:43):
Vladimír Michl (moderátor)
ARKANCE CZ - arkance.world
(podpora viz helpdesk.arkance-systems.cz)
Zpět nahoru
Ferdinand Zobrazit panel
TOP uživatel
TOP uživatel

Přihlášen: 01.říj.2004
Lokalita: ČR (JM)
Používám:
AutoCAD2004 (EN) na Windows XP
Stav: Offline
Bodů: 1906
Přímý odkaz na tuto zprávu Zasláno: 15.zář.2009 v 15:48
Pro upřesnění: se kterým výběrem? S tím posledním?
-FerTh-
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ů: 21906
Přímý odkaz na tuto zprávu Zasláno: 15.zář.2009 v 14:02
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í).
Vladimír Michl (moderátor)
ARKANCE CZ - arkance.world
(podpora viz helpdesk.arkance-systems.cz)
Zpět nahoru
Ferdinand Zobrazit panel
TOP uživatel
TOP uživatel

Přihlášen: 01.říj.2004
Lokalita: ČR (JM)
Používám:
AutoCAD2004 (EN) na Windows XP
Stav: Offline
Bodů: 1906
Přímý odkaz na tuto zprávu Zasláno: 15.zář.2009 v 13:57
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-
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ů: 21906
Přímý odkaz na tuto zprávu Zasláno: 15.zář.2009 v 13:12
Ten výběrový filtr je asi v pořádku - zřejmě jen není žádná entita, která by mu vyhovovala.
Vladimír Michl (moderátor)
ARKANCE CZ - arkance.world
(podpora viz helpdesk.arkance-systems.cz)
Zpět nahoru
Ferdinand Zobrazit panel
TOP uživatel
TOP uživatel

Přihlášen: 01.říj.2004
Lokalita: ČR (JM)
Používám:
AutoCAD2004 (EN) na Windows XP
Stav: Offline
Bodů: 1906
Přímý odkaz na tuto zprávu Zasláno: 15.zář.2009 v 11:43

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-
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ů: 21906
Přímý odkaz na tuto zprávu Zasláno: 15.zář.2009 v 10:30
Jsou "jedno a totéž". Jen v tom prvním nesmí být místo konstanty "insert" použita žádná funkce.
Vladimír Michl (moderátor)
ARKANCE CZ - arkance.world
(podpora viz helpdesk.arkance-systems.cz)
Zpět nahoru
Ferdinand Zobrazit panel
TOP uživatel
TOP uživatel

Přihlášen: 01.říj.2004
Lokalita: ČR (JM)
Používám:
AutoCAD2004 (EN) na Windows XP
Stav: Offline
Bodů: 1906
Přímý odkaz na tuto zprávu Zasláno: 15.zář.2009 v 10:03
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-
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ů: 21906
Přímý odkaz na tuto zprávu Zasláno: 10.zář.2009 v 12:57
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.
Vladimír Michl (moderátor)
ARKANCE CZ - arkance.world
(podpora viz helpdesk.arkance-systems.cz)
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: 10.zář.2009 v 12:07
Původně odeslal(a) Vladimír Michl Vladimír Michl napsal(a):

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í.


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)




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ů: 21906
Přímý odkaz na tuto zprávu Zasláno: 10.zář.2009 v 09:26
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í.
Vladimír Michl (moderátor)
ARKANCE CZ - arkance.world
(podpora viz helpdesk.arkance-systems.cz)
Zpět nahoru
iand Zobrazit panel
Nováček
Nováček

Přihlášen: 17.bře.2006
Lokalita: ČR (Pha)
Používám:
AutoCAD2004
Stav: Offline
Bodů: 7
Přímý odkaz na tuto zprávu Zasláno: 10.zář.2009 v 09:18
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
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: 10.zář.2009 v 07:07
Zkousel jsem to v MAPu 2006 a prvni moznost funguje. Druha ne.
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ů: 21906
Přímý odkaz na tuto zprávu Zasláno: 09.zář.2009 v 21:45
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".
Vladimír Michl (moderátor)
ARKANCE CZ - arkance.world
(podpora viz helpdesk.arkance-systems.cz)
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: 09.zář.2009 v 19:39
nevim, zda se mi to dobre krome toho (getvar "ctab")
Zkuste tam zapsat  primo hodnotu, nebo si to zjistete predem.

Zpět nahoru
Ferdinand Zobrazit panel
TOP uživatel
TOP uživatel

Přihlášen: 01.říj.2004
Lokalita: ČR (JM)
Používám:
AutoCAD2004 (EN) na Windows XP
Stav: Offline
Bodů: 1906
Přímý odkaz na tuto zprávu 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-
Zpět nahoru

Pro technickou podporu CAD
kontaktujte Helpdesk

Příbuzné CAD tipy:
Tip 4732:Nastavení měřítka (velikosti) modelových bloků (textů) na výkresový prostor.
Tip 4338:Rychlejší výběr dynamického bloku pro editaci.
Tip 12231:Jak do DWG souboru Inventoru zahrnout modelový prostor?
Tip 6719:Jak vybrat všechny bloky stejného jména?
Tip 3634:Entity vloženého bloku či xrefu jsou posunuty oproti původní poloze.
Tip 8858:Přesun všech bloků obsahujících určitou hladinu do této hladiny.


 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,879 sekund.