Diskuzní fórum a databáze tipů a utilit pro AutoCAD, Inventor, Revit a další produkty Autodesk - od firmy Arkance Systems [www.cadforum.cz]
CZ | SK | EN | DE
Přihlášení
či registrace
   právě nás čte: 6930 
RSS kanál - CAD tipy RSS tipy
RSS diskuze

Diskuze Diskuzní fórum, poradna

 

NápovědaCAD 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 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
  FAQ FAQ  Prohledat fórum   Události   Registrovat Registrovat  Přihlásit Přihlásit

Téma uzavřenoZoznam cyklicky pridávaný do zoznamu a kótovanie

 Odpovědět Odpovědět Stránka  12> archiv
Autor
michaelflyer Zobrazit panel
Zasloužilý člen
Zasloužilý člen

Přihlášen: 05.úno.2007
Lokalita: Slovensko
Používám:
AutoCAD
Stav: Offline
Bodů: 105
Přímý odkaz na tuto zprávu 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ý.

Připojené náhledyPřihlaste se pro zobrazení plné verze - 20080703_155539_bez_názvu.JPG

Michal MUCHA
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: 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
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: 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.




Zpět nahoru
michaelflyer Zobrazit panel
Zasloužilý člen
Zasloužilý člen

Přihlášen: 05.úno.2007
Lokalita: Slovensko
Používám:
AutoCAD
Stav: Offline
Bodů: 105
Přímý odkaz na tuto zprávu 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
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: 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.
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: 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...
Zpět nahoru
michaelflyer Zobrazit panel
Zasloužilý člen
Zasloužilý člen

Přihlášen: 05.úno.2007
Lokalita: Slovensko
Používám:
AutoCAD
Stav: Offline
Bodů: 105
Přímý odkaz na tuto zprávu 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
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: 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.
Zpět nahoru
chlebovsky Zobrazit panel
Zasloužilý člen
Zasloužilý člen
Avatar

Přihlášen: 18.čer.2007
Lokalita: ČR (JM)
Používám:
Autocad R9 - 2022
Stav: Offline
Bodů: 112
Přímý odkaz na tuto zprávu 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
Zpět nahoru
chlebovsky Zobrazit panel
Zasloužilý člen
Zasloužilý člen
Avatar

Přihlášen: 18.čer.2007
Lokalita: ČR (JM)
Používám:
Autocad R9 - 2022
Stav: Offline
Bodů: 112
Přímý odkaz na tuto zprávu 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
Zpět nahoru
michaelflyer Zobrazit panel
Zasloužilý člen
Zasloužilý člen

Přihlášen: 05.úno.2007
Lokalita: Slovensko
Používám:
AutoCAD
Stav: Offline
Bodů: 105
Přímý odkaz na tuto zprávu 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
Zpět nahoru
chlebovsky Zobrazit panel
Zasloužilý člen
Zasloužilý člen
Avatar

Přihlášen: 18.čer.2007
Lokalita: ČR (JM)
Používám:
Autocad R9 - 2022
Stav: Offline
Bodů: 112
Přímý odkaz na tuto zprávu 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
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: 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.
Zpět nahoru
chlebovsky Zobrazit panel
Zasloužilý člen
Zasloužilý člen
Avatar

Přihlášen: 18.čer.2007
Lokalita: ČR (JM)
Používám:
Autocad R9 - 2022
Stav: Offline
Bodů: 112
Přímý odkaz na tuto zprávu 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
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: 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.
Zpět nahoru
chlebovsky Zobrazit panel
Zasloužilý člen
Zasloužilý člen
Avatar

Přihlášen: 18.čer.2007
Lokalita: ČR (JM)
Používám:
Autocad R9 - 2022
Stav: Offline
Bodů: 112
Přímý odkaz na tuto zprávu 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
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: 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
Zpět nahoru
michaelflyer Zobrazit panel
Zasloužilý člen
Zasloužilý člen

Přihlášen: 05.úno.2007
Lokalita: Slovensko
Používám:
AutoCAD
Stav: Offline
Bodů: 105
Přímý odkaz na tuto zprávu 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
Zpět nahoru

Pro technickou podporu CAD
kontaktujte Helpdesk

Příbuzné CAD tipy:
Tip 577:Jak posčítat délku vybraných čar ve výkresu AutoCADu LT?
Tip 578:Jak posčítat délku vybraných úseček, křivek, oblouků, kružnic, elips a multičar ve výkresu?
Tip 5835:Snadný import souřadnic bodů, čar nebo bloků z Excelu do AutoCADu či AutoCADu LT.
Tip 9950:Vytvoření šikmé kóty v Revitu.
Tip 9077:Úspora místa na obrazovce AutoCADu volbou stylu ribbonu.
Tip 5120:Cyklický výběr překrývajících se objektů v AutoCADu 2007/2008/2009/2010.


 Odpovědět Odpovědět Stránka  12> archiv

Přejít na fórum Oprávnění fóra Zobrazit panel



Stránka byla vygenerována za 1,721 sekund.