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 | |
michaelflyer
Zasloužilý člen Přihlášen: 05.úno.2007 Lokalita: Slovensko Používám: AutoCAD Stav: Offline Bodů: 105 |
Téma: Zoznam cyklicky pridávaný do zoznamu a kótovanie Zasláno: 03.čvc.2008 v 16:00 |
Dobrý deň.
Potreboval by som poradiť. Mám zoznam čísel v stĺpci (sú uložené v txt súbore). Potreboval by som ich dať do zoznamu. (setq a (read-line f)) (while (>= a nil) ;tu chcem aby to opakovalo a pridávalo čísla do zoznamu (setq a (atof (read-line f))) (setq a (append a n)) ;tu neviem ako ďalej. Chcel som, aby mi vyhodil zoznam a znovu pridal ďalšie číslo do zoznamu až dokedy a = nil. (princ a) ) ) Ako by sa dalo zadať kótovanie dielca (nejakého štvor, päť, šesťuholníka) tak aby nešla kóta do dielca ale iba po obvode (okrem uhlov). To čo som sem dal to je dosť idealizované. Málo kedy mám takýto dielec a môže byť akokoľvek otočený. |
|
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: 03.čvc.2008 v 17:09 |
a co takhle?
(setq radek (read-line ff)) (while (/= radek nil) (setq a (append a (list (atof radek)))) (setq radek (read-line ff)) (print a) );while |
|
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: 03.čvc.2008 v 17:15 |
Jinak jeste vysvetlim proc Vam to neslo.
(setq a (atof (read-line f))) nacte string a zmeni na cislo, v "a" je tedy realne cislo a to nemuzete pouzit v prikazu append, ktery spojuje listy. Navic jste ve Vasem prikladu prisel o prvni radek (ctete ho pred while a hned ctete radek druhy) a pri cteni konce souboru nastala chyba protoze prevadite na relne cislo nil. |
|
michaelflyer
Zasloužilý člen Přihlášen: 05.úno.2007 Lokalita: Slovensko Používám: AutoCAD Stav: Offline Bodů: 105 |
Zasláno: 03.čvc.2008 v 18:38 |
Ďakujem za pomoc a aj vysvetlenie. Tu mi však nastáva problém. Ako stým zoznamom ďalej pracovať. Nejako som to nedomyslel!!!
Mám zoznam a myslel som si, že keď zadám: (max a) tak mi vypľuje číslo. No namiesto toho sa mi dostalo eror-u... Skúšal som aj nejako včleniť max do list-u: (setq x (append (max) (a))) ale márne... Viem že problém robia zátvorky. Potrebujem dosiahnuť to, aby tam neboli. Upravil michaelflyer - 03.čvc.2008 v 18:44 |
|
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: 03.čvc.2008 v 19:26 |
Co vlastne potrebujete? Pracovat se souborem, nebo zjistit maximum?
Funkce max nepracuje s listem ale se zadanymi cisly, musel by jste je do toho max z listu vytahnout... Pokud potrebujete nejvetsi cislo ze souboru tak pri cteni cisel porovnavejte kazdou novou hodnotu s "rekordem" a pokud je hodnota vetsi zvetsite "rekord". Pokud uz list mate, tak pouzijte (last (vl-sort a '<)) kde "a" je list. |
|
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: 03.čvc.2008 v 19:29 |
Jinak jeste doporucuji si projit v napovede VisualLispu cast "List Manipulation Functions", kde je pekny prehled funkci na praci s listy, coz je vec ktere se v LISPu nevyhnete...
|
|
michaelflyer
Zasloužilý člen Přihlášen: 05.úno.2007 Lokalita: Slovensko Používám: AutoCAD Stav: Offline Bodů: 105 |
Zasláno: 03.čvc.2008 v 20:25 |
Chcel som získať súradnice max x, max y, min x a min y. Mám dielec a chcel som napríklad zakótovať jeho max rozmery, alebo urobiť okolo neho obdĺžnik. Pôvodná myšlienka bola uloženie do txt súboru súradnice x a y a program mi nájde max. a min. súradnice.
|
|
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: 03.čvc.2008 v 20:59 |
Pak asi bude lepsi moznost s tim listem. Jeden pro X a druhy pro Y. Seradit podle oba velikosti a zjistit prvni a posledni hodnotu listu. Praci se souborem bych se uplne vyhnul.
|
|
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: 03.čvc.2008 v 21:24 |
Pokud mohu vstoupit do Vaší debaty, tach bych Váš problém rozdělil do dvou částí.
a) načtení souboru do seznamu
b) práce se seznamem
začnu tou dvojkou, je to jednodušší.
Řekněme že náš seznam bude vypadat :
( (x1 y1) (x2 y2) (x3 y3) (.............) ..............)
vytvořím si pomocný například takto :
(setq sez (list (list 0 0)(list 1 0)(list 2 5)))
pak jak získat z toho x souradnice :
(setq x (mapcar 'car sez))
a obdobně y souřadnice
(setq y (mapcar 'cadr sez))
pak jak získat minimum z x
(setq minx (eval (cons 'min x)))
pak jak získat minimum z y
(setq miny (eval (cons 'min y)))
s maximi je to stejné ale místo min bude max
teď je dobré někdy znát počet členů v seznamu
(setq pocet (length sez))
pak 1. člen je (car sez)
pak 2. člen je (cadr sez)
pak 3. člen je (caddr sez) přidává se d ale někdy to musí skončit
proto existuje funkce nth
takže i-tý člen je (nth i sez) pozor začíná se 0 takže 1 člen je vlastně
(nth 0 sez)
máme tedy řekněme druhý člen
(setq clen (nth 1 sez))
x získáme (setq x1 (car clen))
y získáme (setq y1 (cadr clen))
celé se to může hodit do ciklu a budeme mít nějaké pocitadlo i a pak projití všech členu bude
(nth i sez) a i bude každým krokem o 1 větší
takže toto byl popsaný v rychlosti seznam, já si na něj zvykl a moc se mi líbí :-) je však spousta dalších funkcí, ale toto jsou ty úplně nejzákladnější
a k tomu souboru, další zpráva :-) |
|
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 |
|
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: 03.čvc.2008 v 21:39 |
A ted k tomu nactení ze souboru.
Soubor může obsahovat klidně jak x tak y souřadnice, vše záleží na samotné syntaxi toho souboru, může být prováděna i kontrola zda nechybí souřadnice... zda jsou to čísla atd...
ale začnu tím nejjednodušším
soubor bude tvořený každou souřadnicí ale i x a y zvlášť na každém řádku
pak bude vypadat takto :
x1
y1
x2
y2
x3
y3
možno klidně i z
pak samotné načítání se zdvojuje :
(setq x (atof (read-line file)))...
(setq y (atof (read-line file)))...
stačí kontrolovat to x protože pak by měla vždy následovat y souřadnice
a to zacyklid dokud není nil
ale v každém kroku načítat oba řádky a seznam pak tvořit
takto :
(setq sez nil)
(... cyklus....
(setq sez (append sez (list (list x y))))
)
je to nejjednodušší.
pak ale je možné psát to ve přesně daném formátu s přesně definovanými počty čísel např. souřadnice před tečkou 4místa+tečka+2místa
(xxxx.xx yyyy.yy)
(xxxx.xx yyyy.yy)
(xxxx.xx yyyy.yy)
např takto :
(0010.15 0000.00)
(0020.00 0010.45)
...atd...
prostě přesně strukturovaný
pak načtu řádek (setq radek (read-line file))
(while (/= radek nil)
(setq x (atof (substr radek 1 7)))
(setq y (atof (substr radek 9 7))) (setq sez (append sez (list (list x y)))) (setq radek (read-line file)))
a zase máme seznam.....
nejhorší a nejsložitější je varianta když se používá oddělovač a to třeba , a není znám počet znaků
pak soubor může vypadat takto :
(125.125,-89654.12589)
(12,0)
(-478.1258985425,985.256)
tam je třeba načíst opět řádek
(setq radek (read-......)) stejně jako předtím
když není nil tak bude provádět cyklus a tam bude :
1) musí být kontrola že první znak textu radek je "("
2) pak bude cyklus po celé délce textu od pozice 1 tak dlouho dokud nenarazí na , to bude načítat do textové proměnné X tu pak převede na x číselnou, to samo zase pokračovat dokud nenajde ")"
dále tam může být kontrola že tam jsou znaky 0-9 a maximálně jedna . a jen jedno minus.... a další kontroly, ale to už je opravdu velice složitý idělat, to spíš vytvořím a pošlu....
já bych ale doporučil to dělat tou druhou variantou, protože stejně jako 0 se chová i mezera, a pokud vím tak třeba excel dokáže krásně vyexportovat do txt souboru přesný počet míst.... a doplní mezerama....
takže ta druhá varianta je snad nejlepší, a nejrychlejší na vytvoření.
Ta třetí zase nejlepší na obsluhu zvenčí :-)
Když tak napište a něco sesmolí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 |
|
michaelflyer
Zasloužilý člen Přihlášen: 05.úno.2007 Lokalita: Slovensko Používám: AutoCAD Stav: Offline Bodů: 105 |
Zasláno: 04.čvc.2008 v 09:51 |
p. Chlebovsky :
Pokud mohu vstoupit do Vaší debaty Kedykoľvek.... Nenapadlo ma, že to môžem nahádzať hneď do list-u... To sa mi páči. Nemusím čítať zo zoznamu, a takto je program kratší a hlavne prehladnejší! Mám ešte pár otázok: 1)máme tedy řekněme druhý člen – Trošku som nepochopil na čo ho budem potrebovať.... Nechápem to... (setq clen (nth 1 sez)) x získáme (setq x1 (car clen)) y získáme (setq y1 (cadr clen)) celé se to může hodit do ciklu a budeme mít nějaké pocitadlo i a pak projití všech členu bude (nth i sez) a i bude každým krokem o 1 větší 2)ten zoznam by bolo dobré nejako vyčistiť. Keď vyberiem prvý dielec, tak mi urobí obrys dobre. Potom vyberiem druhý dielec a min (poprípade max) súradnice si zapamätá s prvého obrysu. Vtedy urobí zle obrys... Takto som to spackal: (defun C:OBR (/) (PRINC "\nVyber dielec:") (setq ent (ssget )) (setq cislo_posled_entity (sslength ent)) ;;;nájde poradové číslo posled entity (treba očítať 1) (setq meno_posled_entity (ssname ent (1- cislo_posled_entity))) (setq n 0) (while (<= n (1- cislo_posled_entity)) (setq entita (ssname ent n)) (setq zoznam_entity (entget entita)) (setq surad_bodu_a (cdr (assoc 10 zoznam_entity))) (setq surad_bodu_b (cdr (assoc 11 zoznam_entity))) (setq surad_x_y (append surad_x_y (list surad_bodu_a surad_bodu_b))) (print surad_x_y) (setq n (1+ n)) (princ n) );while ;;;pak jak získat z toho x souradnice : (setq x (mapcar 'car surad_x_y));;;a obdobně y souřadnice (setq y (mapcar 'cadr surad_x_y)) (setq minx (eval (cons 'min x)));;;pak jak získat minimum z x (setq maxx (eval (cons 'max x))) (setq miny (eval (cons 'min y)));;;pak jak získat minimum z y (setq maxy (eval (cons 'max y))) (setq bod_a (list minx miny) bod_b (list maxx miny) bod_c (list maxx maxy) bod_d (list minx maxy)) (setq pocet (length surad_x_y));;;teď je dobré někdy znát počet členů v seznamu ;;; vykreslenie obdĺžnika okolo dielca (setq ent1 (entmakex (list (cons 0 "line") (cons 8 "podorys stena") (cons 10 bod_a) (cons 11 bod_b)))) (setq ent2 (entmakex (list (cons 0 "line") (cons 8 "podorys stena") (cons 10 bod_b) (cons 11 bod_c)))) (setq ent3 (entmakex (list (cons 0 "line") (cons 8 "podorys stena") (cons 10 bod_d) (cons 11 bod_c)))) (setq ent4 (entmakex (list (cons 0 "line") (cons 8 "podorys stena") (cons 10 bod_d) (cons 11 bod_a)))) ) Ď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 |
Zasláno: 04.čvc.2008 v 11:42 |
k té 1) jsem chtěl jen jakoby vysvětlit, že ze seznamu jdou vytáhnout i jednotlivé části, jen jakoby na ukázku, pro vás to samozřejmně v tomto případě význam nemá, ale do budoucna, např, první člen může být něčím specifický, třeba nějaký popis... tak tímto ho dostanete :-) takže jen na ukázku.
tak teď k 2)
a) chápu to dobře že máte nakreslené úsečky a z nich čerpáte body, protože kdyby to byly křivky neměl by jste všechny boby..... atd, kružnice měl by jste střed, proto by to chtělo do toho ssget-u dát filtr na usečky
a to takto :
(setq ent (ssget (list (cons 0 "LINE"))))
b) pak tam máte cyklus, trošku zbytečně složitý, k tomuto účelu bych použil repeat :
(setq poc (sslength ent))
(setq n 0 surad_x_y nil) (repeat poc
....
....
(setq n (1+ n))
)
c) ten seznam surad_x_y by bylo dobre na zacatku nilovat, aby nedoslo k plnění nějaké staré verze seznamu.... dělám to před cyklem
d) ten print a princ my připadá naprosto zbytečný, teda pokud nepotřebujete vidět, jak se seznam tvoří, ale strašně to vypisování zdržuje program :-) takže doporučuju nedělat :-)
e) pak by bylo dobré tu hranici třeba tvořit né usečkama ale křivkou :
takže pak prográmek bude :
(defun C:OBR (/ ent poc n entita zoznam_entity surad_bodu_a surad_bodu_b surad_x_y x y minx miny maxx maxy bod_a bod_b bod_c bod_d ent1 ent2 ent3 ent4 obvod)
(PRINC "\nVyber dielec:") (setq ent (ssget (list (cons 0 "LINE")))) (setq poc (sslength ent)) (setq n 0 surad_x_y nil) (repeat poc ;;; repeat (1) (setq entita (ssname ent n)) (setq zoznam_entity (entget entita)) (setq surad_bodu_a (cdr (assoc 10 zoznam_entity))) (setq surad_bodu_b (cdr (assoc 11 zoznam_entity))) (setq surad_x_y (append surad_x_y (list surad_bodu_a surad_bodu_b))) (setq n (1+ n)) ) ;;; konec repeat (1) (setq x (mapcar 'car surad_x_y)) ;;; získá x - souřadnice
(setq y (mapcar 'cadr surad_x_y)) ;;; získá y - souřadnice (setq minx (eval (cons 'min x))) ;;; minimum z x (setq maxx (eval (cons 'max x))) ;;; maximum z x (setq miny (eval (cons 'min y))) ;;; minimum z y (setq maxy (eval (cons 'max y))) ;;; maximum z y (setq bod_a (list minx miny)
bod_b (list maxx miny) bod_c (list maxx maxy) bod_d (list minx maxy)) ;;; vykreslenie obdĺžnika okolo dielca
(setq obvod (entmakex (list (cons 0 "LWPOLYLINE")(cons 67 0)(cons 100 "AcDbEntity")(cons 8 "podorys stena")(cons 100 "AcDbPolyline")(cons 90 4)(cons 70 1)(cons 43 0.0)(cons 38 0.0)(cons 39 0.0) (cons 10 bod_a)(cons 40 0.0)(cons 41 0.0)(cons 42 0.0) (cons 10 bod_b)(cons 40 0.0)(cons 41 0.0)(cons 42 0.0) (cons 10 bod_c)(cons 40 0.0)(cons 41 0.0)(cons 42 0.0) (cons 10 bod_d)(cons 40 0.0)(cons 41 0.0)(cons 42 0.0)))) ) |
|
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 |
Zasláno: 04.čvc.2008 v 12:10 |
Pokud to chcete jeste zlepsit, tak pridejte test na prazdny vyber usecek - ted to pri prazdnem vybery spadne. To delalo to while a repeat nedela. Nicmene i s while by to pri prazdnem vyberu spadlo pozdeji.
Jinak ja osobne bych preferoval vykresleni prikazem command. Podle me je to "blbovzdornejsi" pro pristi verze cadu a taky pochopitelnejsi. Navic to obdelnik vykresli s aktualnim nastavenim kreslicich nastroju (hladina, cara, ...), coz povazuji za vyhodu. |
|
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 12:33 |
jasný, s tím hlídáním to je naprostá pravda :-)
takže byla by podmínka za ssgetem :
(setq ent (ssget (list (cons 0 "LINE"))))
(if ent
(progn
(setq poc (sslength ent)) ....
....
....
....
....
(setq obvod (entmakex (list (cons 0 "LWPOLYLINE")(cons 67 0)(cons 100 "AcDbEntity")(cons 8 "podorys stena")(cons 100 "AcDbPolyline")(cons 90 4)(cons 70 1)(cons 43 0.0)(cons 38 0.0)(cons 39 0.0)
(cons 10 bod_a)(cons 40 0.0)(cons 41 0.0)(cons 42 0.0) (cons 10 bod_b)(cons 40 0.0)(cons 41 0.0)(cons 42 0.0) (cons 10 bod_c)(cons 40 0.0)(cons 41 0.0)(cons 42 0.0) (cons 10 bod_d)(cons 40 0.0)(cons 41 0.0)(cons 42 0.0)))) ) ;;; zavira progn ) ;;; zavira if
) ;;; zavira defun
A ted command vs entmakex - něco má své pro, něco proti....
Když jste v jiném souřadném systému než globále, tak pomoci entget načtete global souřadnice, a comandem by jste vložil obdelník úplně jinam, musel by se provest, mám dojem (trans.....) a nějaké parametry, pak command se chytá na uchopy.... ale zase přebírá aktuální nastavení hladit, typů.... atd..
nicméně entmakex je složitější na tvorbu, ale nikdy nezklame, a vždy v globálu¨, a co se týče parametrů hladin... atd není nic jednoduššího než psát
(cons 8 (getvar "clayer"))(cons 62 (getvar "cecolor")).... a je to to samé....
anebo to natvrdo přiřadit.
Pokud by jste chtěl danou křivku nakreslit pomoci comandu, v jiné hladině, musíte napřed přednastavit tu hladinu, hlídat zda existuje.... entmakex ji automaticky vytvoří když není.... atd....
záleží ze které strany se na to díváte :-)
Já třeba propadl víc tomu vnitřnímu tvoření.... ale občas i command je potřebný, třeba pro vložení bloku :-)
Takže určitě oba způsoby jsou správné. |
|
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 |
Zasláno: 04.čvc.2008 v 13:31 |
Me se vzdycky to "vnitrni tvoreni" zdalo zbytecne slozite.
Obaval jsem se toho, ze mezi verzemi CADu pridaji k zaznamu entity dalsi vlastnost. Zkousel jste si porovnavat jak jsou kompatibilni definice u jednotlivych verzi CADu? Taky jsem se obaval, ze si nejakou chybou v utilite zanesu chybu do databaze vykresu. |
|
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 14:12 |
Dělám v Cadu od 12 do 2007 a přechody z nižší do vyšší nikdy, žádný problém nebyl..... (no dos a win :-) ,prostě nová vždy pracuje se starou, opačně jsem to ještě neskoušel :-) Ale spousta nových parametrů jako reaktory.... skupiny..... se ukládají v tabulkách pod nějakým názvem entity a na ten se naše tvořená jen odkazuje kodem 330 většinou, takže když člověk nezachází opravdu do extrémů, mezi xrecordy a reaktory, aby to vše spolupůsobilo, tak k ničemu nedochází.....
já právě řeším program na tvorbu terénu, 3d model, vrstevnice, řezy terénem, načítání bodů ze souboru... pak návrh železniční tratě, vyhýbky, stanice, a pak následně příčné řezy se statickým výpočtem podloží, a celé 3d vykreslení tělesa i s kolejnicemi, řeší to více lidí na fakultě a já jsem jedním z nich, takže né sám, a řešíme to opravdu do extrému, že když někde změním jeden bod terénu, tak to musí kompletně samo překreslit dotčené trasy, příčné řezy ...... a naopak.
a to už pak jsou reaktory, xrecordy a jiné záznamy v tabulkách které jsou trošičku odlišné verze od verze, ale opět fungují vždy nahoru bezvadně, proto je dobré to vyvýjet vždy v té nejnižší co to podporuje, a máte jistotu že nahoru to bude fungovat.
u comandu je to zase jednodušší v tom že stačí dát _prikaz a funguje.... ale vytvoříte jen základnáí kreslící prvky.... nic víc.
Rozšířená data k tomu už třeba nedoplníte. Což třeba používám u bodů. Vytvořím bod v prostoru x.y.z klasický POINT a v jeho rozšířených datech mám uložené jeho číslo, třeba 50, vedle toho 51.
Pak mám definovanou usečku spojnice bodů 50 a 51. A tam nahozené reaktory. Takže když posunu bod, celý se to překreslí.... i včetně všech těch spojnic, kterých jde do bodu třeba 10.... atd,..... atd... a to už commandama nejde, proto jsem si na to tak hodně navykl a oblíbil si to. A command vypustil.
Ale tím nechci od něj odrazovat. Na začátku jsem to taky takhle řešil. :-)
|
|
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 |
Zasláno: 04.čvc.2008 v 14:32 |
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 |
|
michaelflyer
Zasloužilý člen Přihlášen: 05.úno.2007 Lokalita: Slovensko Používám: AutoCAD Stav: Offline Bodů: 105 |
Zasláno: 04.čvc.2008 v 14:47 |
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
|
|
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,721 sekund.