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: 4062 
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řenonatočení atributu

 Odpovědět Odpovědět Stránka  12> archiv
Autor
Kackac Zobrazit panel
TOP uživatel
TOP uživatel

Přihlášen: 11.úno.2006
Lokalita: ČR (Pha)
Používám:
AutoCAD
Stav: Offline
Bodů: 469
Přímý odkaz na tuto zprávu 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
Zpět nahoru
PepaR Zobrazit panel
CAD/BIM manager
CAD/BIM manager
Avatar

Přihlášen: 29.lis.2004
Lokalita: ČR (ZL)
Používám:
ruky a hlavu (občas ;)
Stav: Offline
Bodů: 6114
Přímý odkaz na tuto zprávu 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ří
 
PepaR
www | fb
Zpět nahoru
Kackac Zobrazit panel
TOP uživatel
TOP uživatel

Přihlášen: 11.úno.2006
Lokalita: ČR (Pha)
Používám:
AutoCAD
Stav: Offline
Bodů: 469
Přímý odkaz na tuto zprávu 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
Zpět nahoru
PepaR Zobrazit panel
CAD/BIM manager
CAD/BIM manager
Avatar

Přihlášen: 29.lis.2004
Lokalita: ČR (ZL)
Používám:
ruky a hlavu (občas ;)
Stav: Offline
Bodů: 6114
Přímý odkaz na tuto zprávu 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.
PepaR
www | fb
Zpět nahoru
Kackac Zobrazit panel
TOP uživatel
TOP uživatel

Přihlášen: 11.úno.2006
Lokalita: ČR (Pha)
Používám:
AutoCAD
Stav: Offline
Bodů: 469
Přímý odkaz na tuto zprávu Zasláno: 23.srp.2007 v 17:42
Právě že to není dynamický blok, v práci je maximálně cad2005Unhappy. 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žkuCry
Kackac
Zpět nahoru
PepaR Zobrazit panel
CAD/BIM manager
CAD/BIM manager
Avatar

Přihlášen: 29.lis.2004
Lokalita: ČR (ZL)
Používám:
ruky a hlavu (občas ;)
Stav: Offline
Bodů: 6114
Přímý odkaz na tuto zprávu Zasláno: 23.srp.2007 v 17:54
Poslete mi emailem blok, podívám se jak to máte děláno.
PepaR
www | fb
Zpět nahoru
zisoun Zobrazit panel
Zasloužilý člen
Zasloužilý člen

Přihlášen: 25.pro.2006
Lokalita: ČR (SČ)
Používám:
AutoCAD LT 2007
Stav: Offline
Bodů: 232
Přímý odkaz na tuto zprávu 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
Zpět nahoru
PepaR Zobrazit panel
CAD/BIM manager
CAD/BIM manager
Avatar

Přihlášen: 29.lis.2004
Lokalita: ČR (ZL)
Používám:
ruky a hlavu (občas ;)
Stav: Offline
Bodů: 6114
Přímý odkaz na tuto zprávu 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
PepaR
www | fb
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: 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
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: 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
Zpět nahoru
Kackac Zobrazit panel
TOP uživatel
TOP uživatel

Přihlášen: 11.úno.2006
Lokalita: ČR (Pha)
Používám:
AutoCAD
Stav: Offline
Bodů: 469
Přímý odkaz na tuto zprávu 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.


Připojené souboryzipuploads/20070825_113914_EL_ROZV.zip


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
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: 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
Zpět nahoru
Kackac Zobrazit panel
TOP uživatel
TOP uživatel

Přihlášen: 11.úno.2006
Lokalita: ČR (Pha)
Používám:
AutoCAD
Stav: Offline
Bodů: 469
Přímý odkaz na tuto zprávu Zasláno: 27.srp.2007 v 02:21
Původně odeslal(a) chlebovsky chlebovsky napsal(a):

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

ne ne, já jsem myslela tenhle cyklus, o kterém jste psal minule, je-li v bloku víc atributů.
Kackac
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: 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
Zpět nahoru
Kackac Zobrazit panel
TOP uživatel
TOP uživatel

Přihlášen: 11.úno.2006
Lokalita: ČR (Pha)
Používám:
AutoCAD
Stav: Offline
Bodů: 469
Přímý odkaz na tuto zprávu 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
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: 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
(setq blok (car (entsel "Vyber blok :")))
;;; seznam atributu je uložen v seznamu atributy
(setq atributy (vrat_atributy 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
Zpět nahoru
Kackac Zobrazit panel
TOP uživatel
TOP uživatel

Přihlášen: 11.úno.2006
Lokalita: ČR (Pha)
Používám:
AutoCAD
Stav: Offline
Bodů: 469
Přímý odkaz na tuto zprávu 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)
Původně odeslal(a) chlebovsky chlebovsky napsal(a):

...........
  )
 vraci
)
jak to, že takhle může něco stát samo o sobě, bez závorek? Co to vykonává?


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
Zpět nahoru
Kackac Zobrazit panel
TOP uživatel
TOP uživatel

Přihlášen: 11.úno.2006
Lokalita: ČR (Pha)
Používám:
AutoCAD
Stav: Offline
Bodů: 469
Přímý odkaz na tuto zprávu 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á

Připojené souboryzipuploads/20070929_025820_EL_ROZV_pokus.zip



Upravil Kackac - 29.zář.2007 v 03:02
Kackac
Zpět nahoru

Pro technickou podporu CAD
kontaktujte Helpdesk

Příbuzné CAD tipy:
Tip 2816:Chybně natočené atributy zvětšeného bloku.
Tip 12147:Jak aktualizovat blok se zachováním polohy a natočení atributů?
Tip 4067:Jak zčitelnit natočené texty a atributy bloků ve výkresu?
Tip 4355:Změna vkládacího bodu bloku během vložení.
Tip 9997:Jak automaticky natočit výtisk z Revitu nebo jiné aplikace?
Tip 9086:VIPJak vytvořit 2D axonometrický pohled v AutoCAD Plant 3D?


 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 0,844 sekund.