makro
Vytištěno z: CAD Fórum
Kategorie: Autodesk - stavebnictví, strojírenství, CAD/GIS
Název fóra: CAD programování
Popis fóra: Otázky programování - nadstavby a utility pro CAD a GIS aplikace Autodesk (VBA, AutoLISP, ARX/C++, .Net, JavaScript, Python, MEL...)
URL: https://www.cadforum.cz/forum/forum_posts.asp?TID=4246
Datum vytištění: 13.kvě.2026 v 14:01
Téma: makro
Odeslal: prasopal666
Předmět: makro
Datum odeslání: 22.bře.2007 v 10:30
|
dobrý den,
lze udělat nějaké !makro" které by nahradilo text ve výkresu blokem, kde v atributu by byl právě nahrazovaný text?
------------- Autocad 13 - user, PC 386, 16MHZ, 1MB RAM, 14" VGA monitor
|
Odpovědi:
Odeslal: Vladimír Michl
Datum odeslání: 22.bře.2007 v 10:35
|
Šlo, ale je to trochu nestandardní požadavek - co je konečným účelem?
Měla by být pro každý text zvláštní definice bloku? (respektující parametry textu) Nebo všechny texty vypadají podobně a lze pro ně použít jediný blok s atributem?
Víceřádkové texty budou takto fungovat je v AutoCADu 2008.
------------- Vladimír Michl (moderátor) ARKANCE CZ - https://arkance.world - arkance.world (podpora viz helpdesk.arkance-systems.cz)
|
Odeslal: prasopal666
Datum odeslání: 22.bře.2007 v 10:52
texty jsou podobné, je to textový řetězec o 13 místech. Atribut bloku by byl stejný.
------------- Autocad 13 - user, PC 386, 16MHZ, 1MB RAM, 14" VGA monitor
|
Odeslal: Seiner
Datum odeslání: 22.bře.2007 v 10:59
|
V principu:
1. Vytvořte blok s jediným atributem a zapište ho do souboru na prohledávací cestě. Nazvěte ho třeba AUTODEF
(setq dz (entget (setq m(car(entsel))))) (setq cislo (cdr(assoc 1 dz)) bod (cdr(assoc 10 dz))) (command "_ERASE" m "") (setvar "ATTDIA" 0) (command "_-INSERT" "AUTODEF" bod "1" "1" "0" cislo) (setvat "ATTDIA" 1)
------------- Vítězslav Seiner
Chrudim
|
Odeslal: prasopal666
Datum odeslání: 27.bře.2007 v 11:08
ještě k tomu makru, vůbec nevím jak se spouští, můžete mi prosíl polopatě poradit?
------------- Autocad 13 - user, PC 386, 16MHZ, 1MB RAM, 14" VGA monitor
|
Odeslal: Ferdinand
Datum odeslání: 27.bře.2007 v 11:31
Poněvadž jsem rejpal vyššího stupně (RVT), nedá mi to: pane prasopal666, Makro je hypermarket... (Prosím ostatní, aby mi to prominuli.) Myslím, že jako "Zasloužilý člen" byste to snad už měl vědět... (RVT): Načtení aplikace do výkresu se děje příkazem _appload
------------- -FerTh-
|
Odeslal: Seiner
Datum odeslání: 27.bře.2007 v 11:40
|
Polopatě:
1. Zaslané uložte do souboru s příponou lsp. Nejlépe na prohledávací cestě.
2. Na příkazovou řádku napište (load "neco.lsp")
Kód je sice funkce schopný, ale pokud by měl být opakovaně používán, bylo by vhodné:
- ošetřit lépe vypínání/zapínání ATTDIA (uložit stávající nastavení a na konci vrátit,
- upravit na definici příkazu (defun ...), ošetřit automatické načítání a strčit na nějaké tlačítko.
------------- Vítězslav Seiner
Chrudim
|
Odeslal: prasopal666
Datum odeslání: 27.bře.2007 v 12:58
|
Ferdinand napsal(a):
Poněvadž jsem rejpal vyššího stupně (RVT), nedá mi to: pane prasopal666, Makro je hypermarket... (Prosím ostatní, aby mi to prominuli.) Myslím, že jako "Zasloužilý člen" byste to snad už měl vědět... (RVT): Načtení aplikace do výkresu se děje příkazem _appload
|
a co je makro v příkazu makro?
ještě me napadá co bylo dříf Makro nebo makro?
------------- Autocad 13 - user, PC 386, 16MHZ, 1MB RAM, 14" VGA monitor
|
Odeslal: Seiner
Datum odeslání: 27.bře.2007 v 13:02
|
příkaz MAKRO neznám :-(
Vysvětlete, prosím.
------------- Vítězslav Seiner
Chrudim
|
Odeslal: prasopal666
Datum odeslání: 27.bře.2007 v 13:14
Seiner napsal(a):
příkaz MAKRO neznám :-(
Vysvětlete, prosím. |
nástroje->makro->makra
makro:
množina http://slovnik-cizich-slov.abz.cz/web.php/slovo/instrukce - instrukcí spouštěná zadáním jediného povelu
------------- Autocad 13 - user, PC 386, 16MHZ, 1MB RAM, 14" VGA monitor
|
Odeslal: prasopal666
Datum odeslání: 27.bře.2007 v 13:17
Seiner napsal(a):
Kód je sice funkce schopný, ale pokud by měl být opakovaně používán, bylo by vhodné:
- ošetřit lépe vypínání/zapínání ATTDIA (uložit stávající nastavení a na konci vrátit,
- upravit na definici příkazu (defun ...), ošetřit automatické načítání a strčit na nějaké tlačítko. |
bohužel mi to MAKRO mi nějak nefunguje, když ho spustim, kliknu na text který chi převést do bloku, text zmyzí a v příkazové řádce se objeví "vyberte objekt" zde končím respektive nevím jak vybrat objekt když tam žádný není?
------------- Autocad 13 - user, PC 386, 16MHZ, 1MB RAM, 14" VGA monitor
|
Odeslal: Seiner
Datum odeslání: 27.bře.2007 v 13:22
|
Zkuste mi poslat výpis textové obrazovky.
Mně to píše:
Vyberte objekty: Příkaz: _-INSERT Zadejte jméno bloku nebo [?]: AUTODEF Jednotky: Bez jednotek Převod: 1.00 Určete bod vložení nebo [Refbod/Měřítko/X/Y/Z/Otoč]: Zadejte měřítko v ose X, zadejte protější roh nebo [Obdélník/XYZ] <1>: 1 Zadejte měřítko Y <použijte měřítko X>: 1 Určete úhel otočení <0.0000>: 0 Zadejte hodnoty atributů U: fffff Příkaz: 1
------------- Vítězslav Seiner
Chrudim
|
Odeslal: prasopal666
Datum odeslání: 27.bře.2007 v 13:24
|
Příkaz: _appload makro.lsp byl úspěšně načtený. makro.lsp byl úspěšně načtený.
Příkaz: Vyberte objekt:
"AUTODEF.dwg": Nemohu najít soubor ve vyhledávací cestě: C:\CADWorx Plant 2006\ (aktuální adresář) C:\cadworx plant 2006\support\ C:\program files\autodesk architectural desktop 2005\support\ C:\program files\autodesk architectural desktop 2005\fonts\ C:\program files\autodesk architectural desktop 2005\help\ C:\program files\autodesk architectural desktop 2005\support\color\ C:\documents and settings\ales.ruzicka\data aplikací\autodesk\adt 2005\csy\support\ C:\program files\graitec\advancesteel\profiledesigner\support\images\ C:\Program Files\Autodesk Architectural Desktop 2005\ *Neplatné*
Funkce přerušena Příkaz: Příkaz:
------------- Autocad 13 - user, PC 386, 16MHZ, 1MB RAM, 14" VGA monitor
|
Odeslal: Seiner
Datum odeslání: 27.bře.2007 v 13:28
|
Pravda - na VBA makra jsem zapomněl. Co je to makro, tak trochu tuším.
Bohužel terminologie v CZ AutoCADu je malinko neustálená, (makra v příkazovém řádku, programy v lispu, makra ve VBA, script soubory - dema)
šlo mi o spojení "příkaz makro". Příkaz je pro mne něco jiného, než volba z nabídky nebo název tlačítka.
Ale to už dost dlouho buším do prázdné slámy. Pojďme se radši věnovat rozchozeníá toho makra :-)
------------- Vítězslav Seiner
Chrudim
|
Odeslal: prasopal666
Datum odeslání: 27.bře.2007 v 13:32
|
makro už sem spustil, ale neměl jsem vytvořen ten blok AUTODEF, takže se omlouvám
leč sem narazil na další problém, když kliknu na text který chci převést do atributu bloku, tak mi to nepřevede
------------- Autocad 13 - user, PC 386, 16MHZ, 1MB RAM, 14" VGA monitor
|
Odeslal: Seiner
Datum odeslání: 27.bře.2007 v 13:33
|
A to pro vás není dost návodné? Psal jsem přece, abyste si nejprve vytvořil ten blok s jedním atributem, nazval ho AUTODEF a uložil ho na prohledávací cestě. Samozřejmě ho také můžete vytvořit přímo ve výkrese.
------------- Vítězslav Seiner
Chrudim
|
Odeslal: Ferdinand
Datum odeslání: 27.bře.2007 v 13:43
Makro je něco jako "proveď následující úkoly" (? - neznám, neumím...) a má tvar např. Sub EditAttribPrompts() Dim obj As Object ... On Error Resume Next ThisDrawing.Utility.GetEntity obj, pt, "Vyberte blok: " If Err <> 0 Then Exit Sub End If Set ent = obj If StrComp(ent.ObjectName, "AcDbBlockReference", vbTextCompare) <> 0 Then MsgBox "Vybraná entita není blok !" Exit Sub End If Set blkref = ent If blkref Is Nothing Then MsgBox "Nelze získat blok !" Exit Sub ... lisp je uživatelsky definovaná "nová" funkce (trošičku něco málo z toho znám...) která provede více než 1 operaci a má tvar např. ... (defun C:DIMARC ( / pt1 pt2 cen a1 a2 D1 D2 D i p r oldOs oldCmde) (setq oldCmde (getvar "CMDECHO")) (setq oldOs (getvar "OSMODE")) (setvar "CMDECHO" 0) (prompt "Pick 2 points on an arc - ") (setvar "OSMODE" 512) (while (not cen) (setq pt1 (getpoint "1st pt: ") cen (osnap pt1 "_CEN") ) (if (not cen) (alert "Doesn't lay on an arc, retry") (setq pt2 (getpoint cen " 2nd pt: "))) ... Mám za to, že v podstatě je to totéž ale napsaný jinou formou...(případně mne prosím opravte)
------------- -FerTh-
|
Odeslal: Seiner
Datum odeslání: 27.bře.2007 v 13:49
|
NIKDO se neptal, co je to makro. JA jsem se ptal na PŘÍKAZ MAKRO.
Program v lispu NEMUSÍ definovat nový příkaz - je to jen jedna z možností použití.
------------- Vítězslav Seiner
Chrudim
|
Odeslal: prasopal666
Datum odeslání: 27.bře.2007 v 13:52
Seiner napsal(a):
A to pro vás není dost návodné? Psal jsem přece, abyste si nejprve vytvořil ten blok s jedním atributem, nazval ho AUTODEF a uložil ho na prohledávací cestě. Samozřejmě ho také můžete vytvořit přímo ve výkrese.
|
omlouvám se , nevytvořil jsem blok AUTODEF 
leč pořád mi to nepřevádí text do atributu bloku jak sem si přál
------------- Autocad 13 - user, PC 386, 16MHZ, 1MB RAM, 14" VGA monitor
|
Odeslal: Seiner
Datum odeslání: 27.bře.2007 v 14:01
|
Jasně - stihnul jsem to napsat dřív, než jste odpověděl.
A co vám to píše tedy teď?
------------- Vítězslav Seiner
Chrudim
|
Odeslal: prasopal666
Datum odeslání: 27.bře.2007 v 14:05
problém je asi s nadefinováním atributu bloku, nevím jakou volbu v režimu zaškrtnout aby se text převáděl na hodotu atributu
------------- Autocad 13 - user, PC 386, 16MHZ, 1MB RAM, 14" VGA monitor
|
Odeslal: Seiner
Datum odeslání: 27.bře.2007 v 14:05
http://www.cadforum.cz/forum/uploads/20070327_140445_AUTODEF.DWG - uploads/20070327_140445_AUTODEF.DWG
zkuste můj blok
------------- Vítězslav Seiner
Chrudim
|
Odeslal: prasopal666
Datum odeslání: 27.bře.2007 v 14:09
sorry ale danej výkres neobsahuje žádný blok
------------- Autocad 13 - user, PC 386, 16MHZ, 1MB RAM, 14" VGA monitor
|
Odeslal: Seiner
Datum odeslání: 27.bře.2007 v 14:15
|

Ježkovy voči!!! TEN VÝKRES JE BLOK !!!!
Zkuste si ho dát na vyhledávací cestu a v (prázdném) výkrese dejte příkaz VLOŽ AUTODEF
------------- Vítězslav Seiner
Chrudim
|
Odeslal: prasopal666
Datum odeslání: 27.bře.2007 v 14:29
|
Vám to funguje?
např. tento text SHK125H456 vám vloží do blou AUTODEF do atributu KKS?
------------- Autocad 13 - user, PC 386, 16MHZ, 1MB RAM, 14" VGA monitor
|
Odeslal: prasopal666
Datum odeslání: 27.bře.2007 v 14:32
|
už to funguje
děkuji 
------------- Autocad 13 - user, PC 386, 16MHZ, 1MB RAM, 14" VGA monitor
|
Odeslal: Seiner
Datum odeslání: 27.bře.2007 v 14:35
|
Opět jste byl rychlejší.
Není zač :-)
------------- Vítězslav Seiner
Chrudim
|
Odeslal: Seiner
Datum odeslání: 27.bře.2007 v 14:38
|
Ten blok si samozřejmě upravte podle svých potřeb - štítek a výzvu atributu, formátování textu, případně další objekty (značky).
Já jsem použil blok, který mám pro stařičký program převádějící schéma rámové konstrukce nakreslené v AutoCADu do výpočetního programu.
(Dnes už to nikdo nepoužívá, ale mně je líto to zahodit - takové práce to tehdy dalo...)
------------- Vítězslav Seiner
Chrudim
|
|