neděle 22. ledna 2017

AutoCAD MEP – Cut Length - délky trubek

V jednom z předchozích příspěvků o AutoCADu MEP jsme vynechali nastavení Cut Length v paletě Properties při kreslení kanalizačních trubek. Tehdy jsem slíbil, že se k tomuto tématu vrátím a činím tak po více jak roce .

Jednoduše řečeno – hodnota Cut Length určuje, po jaké vzdálenosti se na rovném úseku potrubí vykreslí hrdlo (v případě vodovodního PPR potrubí nátrubek). Ve Specify Cut Length tedy nejprve zadáme, zda se tímto budeme zabývat a v Cut Length pak vzdálenost po které se trubky budou dělit a vkládat mezi ně hrdla / nátrubky.

MEP24

 MEP25

Ovšem co je to hrdlo pro AMEP? AMEP neobsahuje entitu typu trubka s hrdlem, ale jen rovné trubky se stejným průřezem po celé délce a tvarovky. To, že se mezi trubky a tvarovky mají vkládat hrdla je zadáno v Routing Preference v položce Joints. O Routing Preferences pojednává o něco podrobněji jeden z předchozích příspěvků. V Routing Preference je tedy nastaveno pravidlo, které říká, že při spojení trubky s tvarovkou nebo dvou trubek (případ zadání nenulové Cut Length) se do MEP26tohoto spoje vloží hrdlo. Hrdlo je tedy z pohledu AMEP samostatná tvarovka a trubka s hrdlem na následujícím obrázku dole se ve skutečnosti skládá z rovné trubky a hrdla.

To ale odporuje realitě a asi Vás napadne, že to bude problém při vypisovaní délek potrubí. Mohu Vás uklidnit, problém to překvapivě není a pokud si pomocí příkazu Move (posun) trubku a hrdlo nerozeberete, jak jsem to udělal já, tak vůbec nepoznáte, že hrdlovou troubu AMEP skládá ze dvou částí.

 

 

 

Dobře je to vidět na dvou následujících obrázcích.  K trubkám jsem připojil sadu vlastností (Property Set Definitions) která obsahuje mimo jiné i automaticky odečítanou vlastnost Cut Length. Zatímco u trubky bez hrdla vypíše délku 938 mm u trubky s hrdlem (všimněte si, že je vybrána pouze trubka a ne hrdlo) je to 1020 mm.

MEP27

MEP28

 

Katalog trubek a tvarovek si můžete stáhnout zde nebo ze stránky download. Po jeho instalaci, která je popsána zde nezapomeňte ještě provést regeneraci katalogu výběrem Regenerate Catalog a následně vybrat All.

 image_thumb[1]

pondělí 9. ledna 2017

Převod vektorových PDF katastrálních map do DWG s roztříděním entit do hladin

Od verze 2017 umožňuje AutoCAD a produkty, které jsou na něm založené, převádět do DWG vektorové PDF soubory. Osobně nejvíce tuto funkci používám při konverzi souborů snímků katastrální mapy z cuzk.cz, která je již na většině území České republiky digitalizovaná. Oproti dřívější rastrové podobě katastrální mapy v mapě již nejsou slučky, ale čáry jsou pomocí tloušťky rozděleny na katastrální hranice a zbytek, čemuž dle doporučení geodetů říkám vnitřní kresba. Při konverzi PDF souborů do DWG se převedené entity vloží všechny do jedné hladiny - katastrální hranice i vnitřní kresba. Přesto je vhodné pro další práci s entitami vloženými z katastru nemovitostí mít tyto dva typy čar oddělené a rozdělené do dvou samostatných hladin. Z tohoto důvodu jsem napsal malý program v ve VisualLISPu, který nejprve založí hladiny pro katastrální hranice a vnitřní kresbu a podle tloušťky čáry přenese jednotlivé entity do jedné nebo druhé hladiny. Entitám pak nastaví vlastnosti barvy, a typu čáry na BYLAYER (v češtině myslím DLEHLAD).

Princip funkce je založený na tom, že hranice z katastru nemovitostí jsou rozděleny tloušťkou čáry. Zjistil jsem však, že ne všchny stejně. Hranice mezi katastrální hranicií a vnitřní kresbou prochází někde kolem tloušťky 0.15 a podle této hodnoty také funkce dělí entity do hladin.

Při převodu PDF souborů je pouze třeba mít zaškrtnuto pole, že se mají entity převádět s tloušťkou čáry. V nelokalizované verzi Apply lineweight properties

image

Po vložení je třeba ještě kresbu rozložit byl-li PDF soubor vložen jako blok. Funkce se spouští příkazem katastrtodwg a po jejím zavolání se všechny entity ve výkresů převedou do výše zmíněných dvou hladin v závislosti na parametru tloušťky čáry. Funkci je tedy dobré spouštět ve výkresu, kde nejsou žádné další entity, protože funkce by byla aplikována i na tyto objekty a zařadila by je do jedné ze dvou nově založených hladin.

image

PDF soubor po vložení…

 

image

…a po prohnání funkcí katastrtodwg

Funkce je umístěna v souboru katastrtodwg.lsp a můžete si ji stáhnout ze stránky download z okna LISPy.

Funkce je ve zdrojovém kódu a lze ji dále editovat například v případě potřeby změny hranice tloušťky čáry, podle které se mají entity dělit do hladin.

Načtení lsp souboru s funkcí do aktuálního výkresu AutoCADu lze provést v zásadě dvěma způsoby. Ten nejjednodušší je, že přetáhneme z okna správce souborů (třeba z Průzkumníka) ikonu lsp souboru do okna AutoCADu a funkci spustíme.
Druhý způsob je využití příkazu _appload. V dialogovém okně vybereme požadovaný soubor z funkcí a máme-li zaškrtnuto tlačítko Add to History vloží se odkaz na tento soubor do okna Histroy list, takže příště již nebudeme muset soubor vyhledávat. Budeme-li chtít funkci spouštět často, vyplatí se přidat ji do Startup Suit. Do tohoto dialogového okna se dostaneme klepnutím na tlačítko Contents. Pomocí tlačítka Add přidáme soubor s funkcí. Funkce v souborech, které se zobrazují ve Startup Suit se načítají při každém spuštění AutoCAdu a při otevření každého výkresu, takže je není třeba zvlášť načítat stačí je spustit stejně jako jakýkoliv jiný příkaz.

ttf9

sobota 24. prosince 2016

Podrobný popis tvorby šrafy bobrovek pro AutoCAD a šrafy porobetonu

Tento příspěvek popisuje tvorbu vlastního šrafovacího vzoru, který si spolu s dalšími šrafovacími vzory si můžete stáhnout ze stránky Download sekce šrafy. Náhled vzorů najdete na konci článku.

 

Definice šrafovacích vzorů jsou uloženy v samostatných souborech s příponou *.pat, které lze otevřít a editovat pomocí poznámkového bloku. Pat soubory jsou uloženy v adresáři pats v podadresáři Support

(např. C:\Users\Jmeno_Profilu\AppData\Roaming\Autodesk\Jmeno_Produktu\enu\Support\pats)

Syntaxe první řádky souboru je následující:

*JmenoSrafy,PopisSrafy

Přitom jméno pat souboru musí být stejné jako jméno šrafy.

Na dalších řádkách jsou definovány jednotlivé entity šrafy. Jejich hodnoty jsou oddělené čárkami. Pořadí hodnot je následující:

úhel ve stupních, X-ová souřadnice, Y-ová souřadnice, opakování entity ve směru jejího kreslení, opakování ve směru kolmo k entitě, délka kreslené části, délka nekreslené části,  délka kreslené části, délka nekreslené části ...

Každá hodnota musí být oddělena čárkou, za poslední hodnotou se čárka nedělá.

Chceme-li si vytvořit vlastní šrafu, je nejvhodnější přidat ji do adresáře pats, případně do jakéhokoliv jiného adresáře, který najdeme v dialogu Options na kartě Files v položce Suport File Search Path. Zde je seznam adresářů, které AutoCAD prohledává při načítání uživatelských šraf a dalších souborů.

Pro editaci šrafy nebo napsání vlastní šrafy musíme používat takový textový editor, který nám do souboru nebude vkládat žádné formátovací znaky. Nejlépe tedy poznámkový blok, nebo něco podobného.

V příkladu si vytvoříme šrafovací vzor střešních tašek bobrovek se šupinovým krytím. Přitom je nutné upozornit, že AutoCAD neumožňuje definovat ve šrafách kružnici ani žádné jiné tvary kromě rovných úseček a teček. Oblouk bobrovky tedy nahradíme polovinou dvanáctiúhelníku. Abychom mohli šrafu správně nadefinovat, je nejlepší si ji nakreslit pomocí čar v AutoCADu. Naše šrafa bude vypadat následovně.

clip_image001

Šrafa se definuje pro velikost měřítka 1:1 a měla by být poměrně malá, zhruba tak, aby vzdálenost mezi opakujícími se entitami nepřesáhla jednu kreslící jednotku, i když to není nevyhnutelně nutné.

Otevřeme si tedy například zmiňovaný poznámkový blok a soubor uložíme do adresáře pats jako BobrovkySupinove.pat

Na první řádku napíšeme:

*BobrovkySupinove,Střešní krytina z bobrovek na šupinové krytí

První řádek s jménem šrafy musí vždy začínat hvězdičkou a jméno šrafy se musí shodovat se jménem souboru.

Dále budeme definovat první úsečku šrafy, která je na následujícím obrázku označena tučně. Kružnicí je označen počátek souřadného systému, který jsem pro definici šrafy zvolil a od kterého budeme měřit souřadnice jednotlivých entit šrafy. Umístění počátku souřadného systému šraf je libovolné, ale je ho vhodné volit tak, aby se v řádcích objevovalo co nejvíce nul.

clip_image002

První čárka, kterou budeme definovat se tedy kreslí pod úhlem 0°, má souřadnice v bodě 0.241481 a 0, ve směru kreslení se opakuje po 0.241481 a ve směru kolmém po 0.418258. Délka kreslené části je 0.12941 a délka nekreslené části 0.353553.

Druhá řádka definice naší šrafy vypadá tedy následovně:

0,.176777,0,.241481,.418258,.12941,-.353553

Jak vidíte, oddělovač desetinných míst je tečka, u čísel menších než jedna není třeba psát nulu před desetinnou tečkou a nekreslená část úsečky se píše se znaménkem mínus.

Dále budeme definovat úsečku pod úhlem 30°, která má počátek v bodě 0.306187 a 0, ve směru kreslení se opakuje po 0.418258 a ve směr kolmém k úsečce po 0.241481. Délka kreslené části je 0.12941 a délka nekreslené části 0.288849. Třetí řádka definice šrafy vypadá pak následovně:

30,.306187,0,.418258,.241481,.12941,-.288849

clip_image003

Následuje úsečka pod úhlem 60° s počátkem v bodu 0.418258 a 0.064705, s opakováním ve směru kreslení 0.241481 a kolmém 0.418258. Délka kreslené části je 0.12941 a části nekreslené 0.353553. Celá řádka vypadá následovně

60,.418258,.064705,.241481,.418258,.12941,-.353553

clip_image004

Druhou polovinu začneme svislou čárkou pod úhlem 90° s počátkem v bodu 0 a 0.176777, která se ve směru kreslení opakuje po 0.418258 a ve směru kolmém po 0.241481. Délka kreslené části je 0.241481 a délka nekreslené je 0.595035. Finální řádka definice šrafy je následující:

90,0,.176777,.418258,.241481,.241481,-.595035

clip_image005

Předposlední bude čárka pod úhlem 150° s počátkem v bodu 0.176777 a 0, která se ve směru kreslení opakuje po 0.418258 a ve směru kolmém po 0.241481. Délka kreslené části je 0.12941 a délka nekreslené části 0.707107. Celá řádka bude vypadat takto:

150,.176777,0,.418258,.241481,.12941,-.707107

clip_image006

Poslední úsečka je pod úhlem 300°. Abychom měli v souřadnicích alespoň jednu nulu, můžeme ale místo 300 napsat -60 a jako počátek vzít horní bod úsečky se souřadnicemi 0 a 0.176777. Úsečka se ve směru kreslení opakuje po 0.241481 a kolmo ke směru kreslení po 0.418258. Délka kreslené části je 0.12941 a délka nekreslené části 0.353553.

Poslední řádka bude vypadat takto:

-60,0,.176777,.241481,.418258,.12941,-.353553

clip_image007

Aby bylo možné šrafu používat musí soubor na konci obsahovat ještě alespoň jeden prázdný řádek, takže poslední napsaný řádek nezapomeňte odentrovat. Celý soubor by měl vypadat následovně:

*BobrovkySupinove,Střešní krytina z bobrovek na šupinové krytí

0,.176777,0,.241481,.418258,.12941,-.353553

30,.306187,0,.418258,.241481,.12941,-.707107

60,.418258,.064705,.241481,.418258,.12941,-.353553

90,0,.176777,.418258,.241481,.241481,-.595035

150,.176777,0,.418258,.241481,.12941,-.707107

-60,0,.176777,.241481,.418258,.12941,-.353553

 

Pořadí v jakém jednotlivé úsečky definujeme není důležité.

Po uložení a zavolání příkazu pro šrafování najdeme šrafovací vzor BobrovkySupinove v uživatelsky definovaných šrafách a můžeme jím šrafovat.

Jak je vidět z předchozího příkladu bývá při definice vlastních šraf největší problém najít takový vzor, v němž se budou jednotlivé úsečky co nejčastěji opakovat a pak správně najít opakující se dvojici. Při vytváření vlastních šraf je výhodné po každém napsaném řádku si takto nedokončenou šrafou zkusit něco vyšrafovat. Tím snadněji odhalíme případné chyby. Aby bylo možno i nedokončenou šrafu používat, nezapomeňte za poslední řádek přidat jeden řádek prázdný a soubor uložit.

Na záložce Download v sekci šrafy najdete jak tuto šrafu, tak několik dalších, které AutoCAD neobsahuje, ale po kreslení v našich podmínkách mohou být užitečné. 

první řádek: soubory StresniKrytina1.pat, StresniKrytina2.pat, StresniKrytina3.pat

druhý řádek: soubory Porobeton1.pat, Porobeton2.pat, Porobeton3.pat

třetí řádek: soubory publikované již dříve TepIzol1.pat, TepIzol2.pat, TepIzol3.pat

clip_image008

pátek 26. června 2015

Využití LISPu v příkazové řádce AutoCADu 3.

Předchozí texty o využití LISPu v příkazové řádce najdete zde:

Využití LISPu v příkazové řádce AutoCADu 1.

Využití LISPu v příkazové řádce AutoCADu 2.

Nyní zkusíme do příkazového řádku nadefinovat jednoduchou funkci.

Představme si, že pracujeme na projektu s kreslícími jednotkami odpovídajícími milimetrům, ale potřebujeme do projektu dokreslit komponentu jejíž podklady jsou kótované v palcích. I když existuje i jiné řešení, zkusme to vyřešit vlastní funkcí nadefinovanou pomocí LISPu. Potřebujeme k tomu znát funkci defun, která definuje funkci (define function) její syntaxe je (defun _jmenofunkce (argumenty / lokální proměnné)) Lokální proměnné nyní potřebovat nebudeme, takže se jimi nemusíme zabývat. Druhou věc, kterou potřebujeme vědět je, že LISP používá takzvanou obrácenou logiku (to je důvod, proč je tak populární:-)) Ta spočívá v tom, že se nejprve píše jméno funkce a pak její argumenty. A protože i násobení (*) je funkce, tak budeme-li chtít převést palce na milimetry a počet palců tedy vynásobit 25.4 musíme napsat (* pocet_palcu 25.4)

Naše funkce bude tedy vypadat následovně:

(defun mmp (palce) (* palce 25.4))

image_thumb[35]_thumb

mmp je jméno funkce. Funkce má jeden argument palce, který v dalším kroku vynásobíme konstantou 25.4. Na konci nezapomeňte na dvě uzavírací závorky. První uzavírá funkci násobení, druhá definici funkce mmp.

Nyní zavoláme příkaz na kreslení čáry / stěny …, zadáme výchozí bod (můžeme použít v předchozím příkladu definovaný pt), zadáme směr a namísto délky zadáme například (mmp 10). AutoCAD nakreslí čáru / stěnu o délce 254 mm.

image_thumb[37]_thumb

image_thumb[38]_thumb

V tomto textu jsem popsal jen několik nejzákladnějších funkcí AutoLISPu. Pomocí AutoLISPu a Visual LISPu lze psát ale i rozsáhlejší programy s cykli, rozhodovacími procedurami a dialogovými panely. Všechny funkce LISPu si můžete nechat vypsat do příkazové řádky pomocí příkazu lsp a následným výběrem Function. AutoCAD v sobě obsahuje jednoduché vývojové prostředí pro psaní funkcí v tomto jazyce, které spustíte příkazem vlide nebo vlisp. Nečekejte ovšem žádné Visual Studio. Jedná se spíše o trochu vylepšený poznámkový blok.

pátek 19. června 2015

Využití LISPu v příkazové řádce AutoCADu 2.

V předchozím příspěvku jsme popsali několik jednoduchých příkazů LISPu, které můžeme využít v příkazové řádce AutoCADu. Nyní se koukneme na to, jak pomocí LISPu manipulovat s výběrovými množinami.

Do příkazové řádky  zadáme tuto sekvenci:

(setq vyber1 (ssget))

image_thumb[19]

a na výzvu, která se objeví po odeslání sekvence vybereme jeden nebo více objektů. Tímto jsme do proměnné vyber1 uložili jednu nebo více vybraných entit. Ssget značí Selection Set Get.

image_thumb[21]

Nyní zadejte opět například příkaz pro posun či kopírování a na výzvy po výběry objektů zadejte !vyber1. Vyberte bod a na další výzvy po vzdálenosti zadejte !vzd (viz předchozí příspěvek).

image_thumb[23]

image_thumb[25]

image_thumb[27]

Tímto způsobem si můžeme ve výkresu do proměnných uložit několik entit najednou, které pak můžeme i najednou editovat. Přitom syntaxi můžeme zadat do příkazového řádku i ve chvíli, když už jsou entity vybrané. Například posouváme více entit a po jejich výběru nás napadne, že všechny tyto entity budeme pravděpodobně muset ještě jednou editovat. Stačí při vybraných entitách zadat např (setq vyber2 (ssget)). Tentokrát nejsme vyzváni k výběru žádných objektů, ale do proměnné vyber2 se uloží právě vybrané entity. Ty pak můžeme pomocí !vyber2 znovu vybrat a manipulovat s nimi.

Pokud potřebujeme znovu vybrat poslední výběr (aniž bychom si ho uložili do proměnné pomocí funkce ssget) zadáme na výzvu po výběru objektů pr (previous) ( v lokalizovaném AutoCADu s poddtržítkem _pr). Potřebujeme-li vybrat do výkresu naposled přidanou entitu napíšeme na výzvy po výběru objektů la  / _la (last). Potřebujeme-li vybrat všechny viditelné objekty můžeme namísto výběru myší z jednoho rohu obrazovky do druhého napsat all / _all.

Potřebujeme-li si do proměnné uložit bod, použijeme na to funkci getpoint. Syntaxe je následující:

(setq pt (getpoint "Vyberte bod"))

anebo pokud Vám nevadí, že budete ochuzeni o výzvu k vybrání bodu tak jednoduše (setq pt (getpoint))

image_thumb[29]

image_thumb[31]

Tímto způsobem uložíme souřadnice bodu do proměnné pt. Ověřit si to můžeme zapsáním !pt do příkazové řádky. Výsledek bude podobný tomuto

image_thumb[33]

Proměnnou pt pak můžeme využít pokaždé, když budeme AutoCADem vyzváni k zadání bodu .

pátek 12. června 2015

Využití LISPu v příkazové řádce AutoCADu 1.

V AutoCADu se po léta vyskytuje programovací jazyk AutoLISP a od verze 2000 VisualLISP (šel doinstalovat i do verze R14). Jazyk se dnes již nevyvíjí a z dnešního pohledu má spoustu nevýhod. Jeho obrovskou výhodou ale je, že na jednom řádku vyřešíte to, co v C# na deseti, což souvisí s jeho nedokonalostí.

Pro začátek stačí o LISPu vědět jen pár věcí:

- LISP není case sensitive - nerozlišuje tedy velká a malá písmena

- každá funkce musí být uzavřena v závorkách

- LISP používá takzvaný dynamický typový systém. To znamená, že v LISPu není třeba deklarovat datový typ proměnných a že v proměnné mohu mít jednou uloženo celé číslo a pak do ní vložit třeba text.

- pro dekladrování proměnné slouží funkce setq

napišme do příkazové řádky například tuto sekvenci a odešleme ji Enterem:

(setq a 550 b 98)

image

Tímto řádkem jsme do proměnné "a" uložili hodnotu 550 a do proměnné "b" hodnotu 98. Můžeme si to ověřit zadáme-li do příkazového řádku !a nebo !b

image

Nakresleme si teď nějakou entity a zadejme příkaz pro posun nebo kopírování. Vybereme objekt, vyberme bod (base point), zadejme směr a na výzvu po vzdálenosti místo čísla napišme “!a”. Entita se posune či zkopíruje o 550 jednotek.

image

image

Vyberme znovu nějakou entitu zadejme příkaz pro rotaci, vyberme střed otáčení a na výzvy po velikosti úhlu zadáme místo číselné hodnoty "!b". Entita se otočí o 98° (jsou-li jako úhlové jednotky nastaveny stupně). Proměnné jsou platné po celou dobu otevření výkresu a můžeme je tedy kdykoliv použít.

image

image

Nyní napíšeme do příkazového řádku toto:

(setq vzd (getdist "Vyber dva body"))

image

Na výzvu "Vyber dva body" vybereme dva body a vzdálenost mezi nimi se nám uloží do proměnné vzd. Výzva za getdist není povinná a body můžete vybrat i bez výzvy. Napíšeme-li teď do příkazové řádky !vzd objeví se vzdálenost, která je v této proměnné uložena a tu pak můžeme používat v dalších příkazech. Asi není nutno nějak obšírněji vysvětlovat, že getdist znamená get distance.

úterý 2. června 2015

Zdravotechnika v AMEP–první výsledky

I když je katalog Českých tvarovek a trubek pro vodu a kanalizaci zatím poměrně málo rozsáhlý, již nyní se s jeho pomocí dají dělat jednodušší projekty včetně výpisů. Níže je několik printscreenů projektu vody a kanalizace pro jeden menší bytový dům, který jsem dělal v AMEP právě pomocí katalogu, který si můžete stáhnout zde.

image

ZTI03

ZTI09

ZTI05

ZTI04

ZTI06

ZTI07

ZTI10

ZTI08

image

 

Katalog trubek a tvarovek si můžete stáhnout zde nebo ze stránky download. Po jeho instalaci, která je popsána zde nezapomeňte ještě provést regeneraci katalogu výběrem Regenerate Catalog a následně vybrat All.

 image_thumb[1]