Již 10.000+ CAD tipů.
Přes 118.500 registrovaných u nás, celkem 1.095.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 ![]() |
Stránka 12> archiv |
Autor | |
michaelflyer ![]() Zasloužilý člen ![]() Přihlášen: 05.úno.2007 Lokalita: Slovensko Používám: AutoCAD Stav: Offline Bodů: 105 |
![]() Zasláno: 21.led.2009 v 20:43 |
Hmmm.. no už viem, kde som robil chybu
![]() A ani som nevedel, že to čo ja mám rozpísané na troch riadkoch sa dá zistiť podstatne kratšie (pomocou entget). ![]() Veľmi pekne ďakujem za pomoc. ![]() |
|
Michal MUCHA
|
|
![]() |
|
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 |
![]() |
ten Vas priklad by mohl vypadat takhle:
(setq vyber nil) ;to jen pro poradek... (setq vyber_vsetko (ssget)) (setq poc_vyber_vsetko (sslength vyber_vsetko)) (setq i 0) (setq vyber (ssadd)) (repeat poc_vyber_vsetko (setq meno_ent (ssname vyber_vsetko i)) (if (= (cdr (assoc 0 (entget meno_ent))) "LINE") (progn (setq vyber (ssadd meno_ent vyber));prikaz ssadd ma dva parametry!!! (princ "pridano, celkem vybrano: ") (princ (sslength vyber)) (print) ) ) (setq i (1+ i)) ) (princ "Konec, celkem vybrano: ") (princ (sslength vyber)) (print) |
|
![]() |
|
michaelflyer ![]() Zasloužilý člen ![]() Přihlášen: 05.úno.2007 Lokalita: Slovensko Používám: AutoCAD Stav: Offline Bodů: 105 |
![]() |
Ďakujem za pomoc. Ale stále mi to zapisovalo iba dve entity
![]() |
|
Michal MUCHA
|
|
![]() |
|
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 |
![]() |
poprve se da:
(setq vyber (ssadd jmeno_entity)) pak se dava: (setq vyber (ssadd jmeno_dalsi_entity vyber)) Funkce ssadd ma dva parametry, pricemz druhy (nazev vybery ke kteremu se pridava) je nepovinny. |
|
![]() |
|
michaelflyer ![]() Zasloužilý člen ![]() Přihlášen: 05.úno.2007 Lokalita: Slovensko Používám: AutoCAD Stav: Offline Bodů: 105 |
![]() |
Urobil som to cez repeat, ale to je nepodstatné. Mám problém s pochopením zápisu "ssadd":
(repeat poc_vyber_vsetko (setq meno_ent (ssname vyber_vsetko i)) (setq zoznam_entity (entget meno_ent)) (setq zisti_line (cdr (assoc 0 zoznam_entity))) (if (= zisti_line "LINE") (progn (setq vyber (ssadd meno_ent)) (princ vyber) ) ) (setq i (1+ i)) ) Označené červenou mi vyhlási error. Ako to má správne vyzerať? |
|
Michal MUCHA
|
|
![]() |
|
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 |
![]() |
Napriklad tak, ze v cyklu projedete vyber "vsetko", u kazde entity mrknete na to co je zac a pokud je to LINE tak ji funkci "ssadd" pridate do "vyber_LINE_z_vsetko".
|
|
![]() |
|
michaelflyer ![]() Zasloužilý člen ![]() Přihlášen: 05.úno.2007 Lokalita: Slovensko Používám: AutoCAD Stav: Offline Bodů: 105 |
![]() |
Prosím vás dá sa nejako vyfiltrovať z ssget zoznamu iba napríklad "LINE"? Ale z iného zoznamu ssget:
(setq vsetko (ssget)) (setq vyber_LINE_z_vsetko (ssget "_P" '((0 . "LINE")))) Viem, že to červeným je asi blbosť... Ide mi o to aby vo "vyber_LINE_z_vsetko" boli iba "LINE". Chcem posunúť (move) všetky vybrané objekty, ale aby v zozname "vyber_LINE_z_vsetko" boli iba "LINE" s ktorým ďalej pracujem. Dá sa to aj inak??? |
|
Michal MUCHA
|
|
![]() |
|
Kackac ![]() TOP uživatel ![]() Přihlášen: 11.úno.2006 Lokalita: ČR (Pha) Používám: AutoCAD Stav: Offline Bodů: 469 |
![]() |
Jéje, kdyby autor prominul a vy jste byl té dobroty, moc bych vás o to prosila a byla vám posléze neskonale vděčná. Email posílám na PM. Upravil Kackac - 12.čvc.2008 v 22:23 |
|
Kackac
|
|
![]() |
|
michaelflyer ![]() Zasloužilý člen ![]() Přihlášen: 05.úno.2007 Lokalita: Slovensko Používám: AutoCAD Stav: Offline Bodů: 105 |
![]() |
"alfred": Nevedel som, že if dokáže pracovať aj len s jednou možnosťou. A ani neviem prečo to tak mám zafixované...
Ďakujem vám obom za pomoc. ![]() |
|
Michal MUCHA
|
|
![]() |
|
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 |
![]() |
funkce if je vlastně založená na principu nějakého porovnání a vrací jeden ze dvou ukolů dle toho jak dopadne podmínka.
if podminka ukol1 ukol2
samotná podmínka vrací bud NIL nebo TRUE takže když celou podmínku nahradíte touproměnnou tak vlastně dle toho se chová ten if
Takže když je
(IF POD UK1)
tak pokud je POD zadáno, provede se UK1 jinak se má provést UK2 ale když není zadaný nic se neudělá.
Proto testuju tu proměnnou
(if bod_arc_a
když je tak proveď
(setq surad_x_y (append surad_x_y (list bod_arc_a)))
)
|
|
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 |
|
![]() |
|
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 |
![]() |
pozorne si prectete napovedu k IF...
(if podminka ano ne) "ano" se provede kdyz podminka NENI NIL "ne" se provede kdyz podminka JE NIL kdyz je podminka NIL a neni definovano "ne", tak funkce vrati NIL |
|
![]() |
|
michaelflyer ![]() Zasloužilý člen ![]() Přihlášen: 05.úno.2007 Lokalita: Slovensko Používám: AutoCAD Stav: Offline Bodů: 105 |
![]() |
SUPER!!!!
![]() Skúšal som aj obrysu arc-u (už ho len implementovať do pôvodného obrysu). Poviem vám, že žiadna sranda (predtým som sa asi podceňoval)!!!! Program má veľkosť 8kB. No možno som išiel na to veľmi zložito... (if bod_arc_a (setq surad_x_y (append surad_x_y (list bod_arc_a)))) Inak nechápem ako to funguje. ![]() |
|
Michal MUCHA
|
|
![]() |
|
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 |
![]() |
Vyhodit nil ze seznamu je špatný, to se musí dělat cyklem přez všechny položky, tam test zda je nil nebo není, když není ukládá do druhého seznamu, a tím pak přepíše ten první. Ideální je ten nil do toho seznamu rovnou nepřidávat :
(if bod_arc_a (setq surad_x_y (append surad_x_y (list bod_arc_a)))) (if bod_arc_b (setq surad_x_y (append surad_x_y (list bod_arc_b))))
..
..
..
(if max_arc_bod4 (setq surad_x_y (append surad_x_y (list max_arc_bod4))))
prostě to do seznamu nedávat :-) a položky načítat postupně |
|
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 |
|
![]() |
|
michaelflyer ![]() Zasloužilý člen ![]() Přihlášen: 05.úno.2007 Lokalita: Slovensko Používám: AutoCAD Stav: Offline Bodů: 105 |
![]() |
Skúšal som to vymeniť za medzeru ale nefungovalo to.
(setq surad_x_y (subst (cons nil " ") (assoc nil surad_x_y) surad_x_y)) (entmod surad_x_y) Už ma nič nenapadá. Nemá niekto ničo v zálohe? ![]() |
|
Michal MUCHA
|
|
![]() |
|
michaelflyer ![]() Zasloužilý člen ![]() Přihlášen: 05.úno.2007 Lokalita: Slovensko Používám: AutoCAD Stav: Offline Bodů: 105 |
![]() |
Prosím vás, ako by som sa zbavil nil-ových hodnôt z list-u? Viem, že max_arc_bod2 a max_arc_bod3 sú nil-ové. Ale chcem aby ich nebralo (nezapisovalo) do zoznamu (teda tie nil-ové hodnoty). Platí to pre každú premennú.
(setq surad_x_y (append surad_x_y (list bod_arc_a bod_arc_b max_arc_bod1 max_arc_bod2 max_arc_bod3 max_arc_bod4))) Výpis súradníc: ((4323.11 3287.45) (4197.1 3967.82) (4236.03 3970.01) nil nil (4582.87 3623.18)) Upravil michaelflyer - 08.čvc.2008 v 23:03 |
|
Michal MUCHA
|
|
![]() |
|
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 |
![]() |
jojo jasný, já to psal trochu všeobecně, je tam třeba testovat když je to :
BYLAYER "DLEHLAD" pak to bude 256
BYBLOCK "DLEBLOK" pak to bude 0
pokud je to RGB nastavuje se "RGB:XXX,XXX,XXX"
jinak je to 1-255
jenže do 62 se ukládá jenom 0-255
v případě 256 = dlehlad se prostě položka 62 vypouští nebo uvede 62.256
a co se týče RGB :
tak do 62 se ukládá podobná barva a do kodu 420 se uloží binární kod RGB barvy a to takto
256*256*R + 256*G + B takže v případě 210,219,36 bude
(62.52)(420.1318660)
Jinak na dotaz p. michaelflyer kde na to chodím :-)
to jsou léta praxe cca 15let, a jak člověm narazí na jakýkoliv problém, tak radí různé fóra, jak americe tak tady naše nejlepší Cad Forum :-) a když zklame naprosto všecko tak poradí někdy to, že se obrátím přímo na toho nejvyššího z tohoto fora, tam je jistota, ten poradí vždycky :-) a to je p. Michl :-)
Kdysy jsem natrefil na jednu knížku o lispu na verzi 11. velmi jednoduchá, ale právě takovéto vychytávky tam jsou, a zrovna ta s tím eval tam je na tomto příkladě :-) takže já nééé :-) napadlo mně jí někdy naskenovat a tady nabídnout, ale nevím zda to vůbec můžu udělat. Každopádně, není problém naskenit, a poslat v pdf na vytištění (autor promine, snad, když je z roku já nevím kolik před naším letopočtem) ale je to jen základ.... bez novinek....
|
|
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 |
|
![]() |
|
michaelflyer ![]() Zasloužilý člen ![]() Přihlášen: 05.úno.2007 Lokalita: Slovensko Používám: AutoCAD Stav: Offline Bodů: 105 |
![]() |
p. Chlebovsky
No bol by som rád keby som to naprogramoval, aby bralo do úvahy aj oblúky. Ale na to nemám, tak sa radšej do toho ani nehrniem... Ale ak by ste mi chcel s tým pomôcť, tak som samé ucho, teda oko.... Inak skadiaľ chodíte na tie nápady... (setq minx (eval (cons 'min x))) na to by som neprišiel... Mám síce veľmi málo skúseností, tak je to pochopiteľné... p. Alfred: Ja používam tiež rozšírené dáta pre vytvorenie čohokoľvek. Je to stabilnejšie ako command... A čo sa týka nastavenia hladín, typu čiary a pod., tak to je len vecou nastavenia. Stačí len do lispu nahrať aktuálne hodnoty a tie použiť pri vytváraní rozšíreného zoznamu... |
|
Michal MUCHA
|
|
![]() |
|
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 si to
(cons 62 (getvar "cecolor")) a nechodi to. getvar vrati string a ja potrebuji cislo, coz neni problem u barev 1-255. Narazim ale u DLEHLAD, RGB barev, kde pri prevodu stringu na cislo dostanu nulu - tedy DLEBLOK. Je to vec nazoru a mozna ze pro slozite veci se tomu clovek nevyhne, ale ja zustavam u command... :-D |
|
![]() |
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 0,546 sekund.