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
natočení atributu |
Odpovědět | Stránka 12> archiv |
Autor | |
Kackac
TOP uživatel Přihlášen: 11.úno.2006 Lokalita: ČR (Pha) Používám: AutoCAD Stav: Offline Bodů: 469 |
Téma: natočení atributu Zasláno: 23.srp.2007 v 16:58 |
Dobrý den,
mám velmi jednoduchoučký lisp na vložení bloku a jeho natočení podle ukázání. Problém je ale v tom, že ten blok obsahuje atribut a když je blok natočen vzhůru nohama, je vzhůru nohama i text. Jaký příkaz to ovládá, abych nemusela ručně u každého již vloženého bloku poklepat a volit natočení textu? Je nějaká obdoba EATREDIT pro příkazový řádek nebo to řešit úplně jinak? |
|
Kackac
|
|
PepaR
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
CAD/BIM manager Přihlášen: 29.lis.2004 Lokalita: ČR (ZL) Používám: ruky a hlavu (občas ;) Stav: Offline Bodů: 6187 |
Zasláno: 23.srp.2007 v 17:08 |
Já s tím problémy nemám, viz funkce VlozBlok a příkazy:
POPISD Vloží popis dveří
POPISDPO Vloží popis požárních dveří |
|
Kackac
TOP uživatel Přihlášen: 11.úno.2006 Lokalita: ČR (Pha) Používám: AutoCAD Stav: Offline Bodů: 469 |
Zasláno: 23.srp.2007 v 17:26 |
Jestli tomu dobře rozumím, tak vy máte zvlášť dveře a zvlášť popis. Já bych ale chtěla zachovat to, že je to jeden blok, který obsahuje jak kresbu toho prvku tak i jeho popis.
|
|
Kackac
|
|
PepaR
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
CAD/BIM manager Přihlášen: 29.lis.2004 Lokalita: ČR (ZL) Používám: ruky a hlavu (občas ;) Stav: Offline Bodů: 6187 |
Zasláno: 23.srp.2007 v 17:34 |
Aha, Vám jde asi o dynamický blok, že ano? Tak tam bývá problém, zkoušel jsem to ve 2006, ale někdy se text otočil správně někdy ne, měl jsem taky zadány u dvěří rozměry jako atribut.
Je na zváženou zda nevyužít proměnné MIRRTEXT při používání bloku dvěří a dza yb to vůbec pomohlo.
Co se týče natočení atributů, tak na Autodesku v diskusním fóru o dynamických blocích bylo vlákno týkající se podobného problému.
|
|
Kackac
TOP uživatel Přihlášen: 11.úno.2006 Lokalita: ČR (Pha) Používám: AutoCAD Stav: Offline Bodů: 469 |
Zasláno: 23.srp.2007 v 17:42 |
Právě že to není dynamický blok, v práci je maximálně cad2005. Je to úplně obyčejný blok s jedním atributem. A pokud já natvrdo nepřepíšu u vloženého bloku otočení textu, tak se ten text/atribut otáčí s blokem. A to je hrozná otrava vždycky po vložení to natočení přepsat, zvlášť, když ještě musím nejdřív překliknout na druhou záložku
|
|
Kackac
|
|
PepaR
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
CAD/BIM manager Přihlášen: 29.lis.2004 Lokalita: ČR (ZL) Používám: ruky a hlavu (občas ;) Stav: Offline Bodů: 6187 |
Zasláno: 23.srp.2007 v 17:54 |
Poslete mi emailem blok, podívám se jak to máte děláno.
|
|
zisoun
Zasloužilý člen Přihlášen: 25.pro.2006 Lokalita: ČR (SČ) Používám: AutoCAD LT 2007 Stav: Offline Bodů: 232 |
Zasláno: 23.srp.2007 v 22:19 |
Asi to nebude to ideální pro vás, ale já mám pro otáčení atributů
vytvořené jednoduché makro, které urychlí použití příkazu ATREDIT.
Stačí kliknout na atribut a zadat úhel natočení.
^C^C-ATREDIT;;;;;\;_ang;\; |
|
Zisounek
|
|
PepaR
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
CAD/BIM manager Přihlášen: 29.lis.2004 Lokalita: ČR (ZL) Používám: ruky a hlavu (občas ;) Stav: Offline Bodů: 6187 |
Zasláno: 23.srp.2007 v 23:06 |
Nejsem programátor, ale řešil bych to následovně:
1) Zapracoval bych proměnnou, která si bude pamatovat úhel natočení
2) Zapracoval bych proměnnou, která bude obsahovat výběr naposled vloženého bloku
3) A aplikoval bych na tento výběr zisounovo makro.
Ovšem, jak jsme již psal, nejsem programátor, takže pánové zkušenější Vám jistě poradí, zda by to šlo.
Pokud by vám šlo jen o ozrcadlení bloku, a zachování směru textu, tak zkuste nastavit MIRRTEXT na 0. Upravil PepaR - 24.srp.2007 v 11:31 |
|
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: 24.srp.2007 v 08:40 |
Jo přesně jak píše PepaR, pokud máte vytvořený lisp který Vám ten blok vkládá, tak není nic jednoduššího než za příkaz vložení, dát výběr poslední entity, v ní dohledat atribut, a nastavit vše dle daných hodnot, ty hodnoty však předem definovat do nějaké proměnné globální v rámci výkresu. A pak mít ještě funkci na znovuzadání těchto hodnot.
Když ten blok a lisp pošlete tak na to mrknu. A něco Vám vytvoří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 |
|
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: 24.srp.2007 v 10:00 |
výběr posledního bloku :
(setq blk (entlast))
získání atributu
(setq atr (entnext blk))
kdyz je víc atributu tak
(setq atr1 (entnext blk))
(setq atr2 (entnext atr1))
(setq atr3 (entnext atr2))
dobré to dát do ciklu dokud nenalezena entita SEQEND
a pak už jen měnit vlastnosti pomoci
entget -> subst -> entmod |
|
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 |
|
Kackac
TOP uživatel Přihlášen: 11.úno.2006 Lokalita: ČR (Pha) Používám: AutoCAD Stav: Offline Bodů: 469 |
Zasláno: 25.srp.2007 v 11:41 |
Vřelý dík, zejména p. Chlebovskému, jeho příkazy to vyřešily. Byla to sice fuška, programovat neumím, zatím mám jen pár primitivních lispů, ale s helpem a půjčenou knížečkou se to povedlo. Jen do toho neumím zapracovat ten cyklus, prosím poraďte ještě s tímto.
Zdrojový kód (defun c:ER() (setq oldla (getvar "CLAYER")) (setq osold (getvar "OSMODE")) (command "_layer" "_t" "TZB_ZARPREDMETY" "_M" "TZB_ZARPREDMETY" "_l" "continuous" "" "") (command "_-osnap" "_end,_int,_mid") (command "_ucs" "") ;(while (setq rf (getpoint "\nzadej stred na stene: ")) (command "_-osnap" "") (setq ang (* (/ (getangle "\nzadej směr: " rf) pi)180 )) (command "_-insert" "EL_ROZV" rf 1 1 ang "") (setq blk (entlast)) ;posledni prvek (setq atr (entnext blk)) ;atribut (setq edata (entget atr)) ;data atributu (setq oldrot (assoc 50 edata)) ;podseznam obsahujici klic 50 (natoceni) (setq newrot (cons 50 0.0)) ;zkonstruovani noveho podseznamu klice 50 (setq edata (subst newrot oldrot edata)) ;nahrazeni stareho podseznamu novym (natoceni 0) (entmod edata) ;modifikace seznamu (entupd blk) ;regenerace slozene entity (bloku, krivky...) (command "_-osnap" "_end,_int,_mid") ;) ;konec while (setvar "OSMODE" osold) (command "_LAYER" "_M" OLDLA "") ) |
|
Kackac
|
|
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: 26.srp.2007 v 21:19 |
No podle mně ten cyklus máte naprosto v pořádku.... stačí jen vyhodit ty středníky...
Teda pokud máte na mysli to že cyklus má probíhat tak dlouho dokud zadáváte bod RF jako střed na stěně
vlastně ty první závorky tvoří u cyklu podmínku, a ta zní... probíhej tak dlouho dokud platí podmínka, takže když zadáte bod tak proběhne cyklus, a když bod odkliknete pravým takže nezadáte, tak cyklus okamžitě končí.
|
|
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 |
|
Kackac
TOP uživatel Přihlášen: 11.úno.2006 Lokalita: ČR (Pha) Používám: AutoCAD Stav: Offline Bodů: 469 |
Zasláno: 27.srp.2007 v 02:21 |
ne ne, já jsem myslela tenhle cyklus, o kterém jste psal minule, je-li v bloku víc atributů. |
|
Kackac
|
|
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: 28.srp.2007 v 07:59 |
podle mne je ten cyklus v tomto případě naprosto zbytečný, při vkládání bloku víte naprosto přesně kolik má atributů a všechny je musíte uvést v příkazu insert "" uvozovkama...
proto přesně víte kolikrát ten (entnext má být.
ale jinak by se zkoumalo
(while (/= typ_ent "SEQEND")
)
kde typ_ent je (cdr (assoc 0 (entget ...)
ale tady bych to nepoužil....
víte že blok má 1 atribut proto jednou entnext
|
|
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 |
|
Kackac
TOP uživatel Přihlášen: 11.úno.2006 Lokalita: ČR (Pha) Používám: AutoCAD Stav: Offline Bodů: 469 |
Zasláno: 29.srp.2007 v 23:42 |
Je pravda, že tady to asi nepoužiju. Ale když je čas, snažím se trochu zpříjemnit středověký způsob kreslení v práci a píšu si takovéhle drobnosti, takže se domnívám, že časem se dostanu k něčemu podobnému s jiným typem bloku, kde by se to mohlo hodit. Navíc to, že hodnota atributu není přednastavená a tudíž se ptá na potvrzení, je trochu pozůstatek z dob dřívějších a nejspíš to časem změním, takže bude po uvozovkách u příkazu insert a cyklus už by bylo možné použít pro zobecnění prográmku.
Zatím jsem se k tomu nedostala, takže ještě nevím, jestli to rozchodím, ale děkuji za pomoc Vám i ostatním. |
|
Kackac
|
|
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: 30.srp.2007 v 08:21 |
Já bych si vytvořil na to funkci : (defun vrat_atributy (blok / blk att at vraci)
;;; kontrola že je to blok (if (and blok (= "INSERT" (cdr (assoc 0 (setq blok (entget blok)))))) (progn ;;; ano je to blok (setq blk (cdr (assoc -1 blok))) ;;; získám jméno entity bloku (setq att nil) (setq at blk) (setq vraci nil) (while (= "ATTRIB" (cdr (assoc 0 (setq at (entget (entnext at)))))) ;;; cyklus který vyhledá atributy lze použít i podmínka (/= "SEQEND"...) (setq att (append att (list (cdr (assoc -1 at))))) ;;; připojí atribut jmeno entity do seznamu (setq at (cdr (assoc -1 at))) ) (setq vraci att) ) (alert "Byl proveden neplatný výběr") ) vraci ) A celé bych to ovládal takto :
;;; vyberu blok |
|
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 |
|
Kackac
TOP uživatel Přihlášen: 11.úno.2006 Lokalita: ČR (Pha) Používám: AutoCAD Stav: Offline Bodů: 469 |
Zasláno: 29.zář.2007 v 02:54 |
Tak jsem si na to po dlouhé době zase sedla a nějak se mi to nedaří doladit.
Udělala jsem si 4 funkce: F1. podle vašeho posledního příspěvku, tudíž chodí jak má:) F4. malá modifikace té původní funkce, která vkládala blok s 1 atributem a otočila ho - teď otáčí všechny atributy bloku, ať jich má kolik chce, to kupodivu taky chodí:) F2. pomocná funkce, která má jen přidělit všem atributům natočení 0. Tu jsem vytvářela proto, abych ji mohla použít ve funkci 3 a 4 a nemusela ji v obou funkcích psát. Jenže ji neumím zavolat aby to chodilo, to je tedy dotaz 1 - jak ji zavolat z F3 a F4? F3. funkce, jež má všechny atributy vybraného bloku (již dříve vloženého se špatně natočenými atributy) natočit na 0°. A tady je kámen úrazu (a dotaz 2) - nemůžu přijít na chybu. Otáčí to totiž sice všechny atributy vybraného bloku, ale zároveň i všechny bloky! vložené později než vybraný blok, a to úplně všechny, nejen rozvaděče s atributy:( Určitě tam mám někde do proměnné uloženo něco co tam nemá být, ale já na to nemůžu přijít. - vyřešeno - viz můj příspěvek z 04:12 Je pravda, že už jsem se do těch všech proměnných zamotala, že nedokážu sjednotit (nebo naopak zcela oddělit?) proměnné všech 4 funkcí, což je ostuda, protože kdo jiný by se v tom měl vyznat než já, ale mám pocit, že čim dýl se v tom hrabu, tím je to horší. dotaz 3 se týka toho osamoceného "vraci" před poslední závorkou vaší fukce vrat_atributy (tedy u mě F1)
Omlouvám se, že pořád otravuju s tím samým, ale nedaří se mi tím prokousat samotné, potřebuju zase nakopnout:) Upravil Kackac - 29.zář.2007 v 04:20 |
|
Kackac
|
|
Kackac
TOP uživatel Přihlášen: 11.úno.2006 Lokalita: ČR (Pha) Používám: AutoCAD Stav: Offline Bodů: 469 |
Zasláno: 29.zář.2007 v 03:00 |
A samozřejmě jsem zapomněla přiložit ty soubory:)
V zipu je lisp a blok se 4mi atributy, který F4 vkládá Upravil Kackac - 29.zář.2007 v 03:02 |
|
Kackac
|
|
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,285 sekund.