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
Zoznam cyklicky pridávaný do zoznamu a kótovanie |
Odpovědět | Stránka <12 archiv |
Autor | |
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.čvc.2008 v 15:24 |
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 |
Zasláno: 08.čvc.2008 v 23:01 |
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
|
|
michaelflyer
Zasloužilý člen Přihlášen: 05.úno.2007 Lokalita: Slovensko Používám: AutoCAD Stav: Offline Bodů: 105 |
Zasláno: 09.čvc.2008 v 13:28 |
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
|
|
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: 09.čvc.2008 v 13:39 |
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 |
Zasláno: 09.čvc.2008 v 14:25 |
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. Ako to, že funkcia if (ak je nil-ová) nezapíše do zoznamu premennú... |
|
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 |
Zasláno: 09.čvc.2008 v 15:19 |
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 |
|
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: 09.čvc.2008 v 15:30 |
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 |
|
michaelflyer
Zasloužilý člen Přihlášen: 05.úno.2007 Lokalita: Slovensko Používám: AutoCAD Stav: Offline Bodů: 105 |
Zasláno: 10.čvc.2008 v 08:02 |
"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
|
|
Kackac
TOP uživatel Přihlášen: 11.úno.2006 Lokalita: ČR (Pha) Používám: AutoCAD Stav: Offline Bodů: 469 |
Zasláno: 12.čvc.2008 v 22:18 |
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 |
Zasláno: 17.led.2009 v 23:19 |
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
|
|
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 |
Zasláno: 19.led.2009 v 06:46 |
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 |
Zasláno: 20.led.2009 v 07:35 |
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 |
Zasláno: 20.led.2009 v 08:59 |
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 |
Zasláno: 20.led.2009 v 23:35 |
Ď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 |
Zasláno: 21.led.2009 v 06:51 |
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 |
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
|
|
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 1,387 sekund.