řadit podle: nejnovější | nejčtenější | nejkomentovanější

Opakované zapsání textu pod kótovací čáru pomocí VisualLISPu

Kategorie » téma: LISP

23.08.2010 09.40 | Jan Panoch | Komentáře: 0 komentářů | Přečteno: 10737x

Příklad z předchozího příspěvku je sice funkční, práce s ním je však poněkud těžkopádná, protože vyžaduje při každém zápisu textu pod kótovací čáru opakované zadání požadovaných hodnot. Přitom ale například při zápisu výšky okna a výšky parapetu má většinou více oken tyto hodnoty shodné. Potřebujeme tedy do funkce přidat cyklus, který dokud budeme vybírat kóty bude do jejich jmenovatele zapisovat zadaný text. Pro opakované zapsání textu pod kótovací čáru použijeme cyklus while. Syntaxe funkce while je následující:

(while (podmínka)

(výraz)

)

Zapsání textu pod kótovací čáru pomocí VisualLISPu

Kategorie » téma: LISP

23.08.2010 09.28 | Jan Panoch | Komentáře: 0 komentářů | Přečteno: 14844x

 
Z předchozích příspěvků věnovaných přístupu k objektům a jejich vlastnostem pomocí VisualLISPu máme již dostatek znalostí, abychom napsali první užitečnou funkci. Po spuštění funkce budeme dotázáni na text, který se má zapsat pod kótovací čáru a po následném výběru kóty se do ní zadaný text dopíše tak, že se stane její součástí. V tomto příkladu použijeme dvě funkce, o kterých jsme se zatím nezmínili.
 
getstring - tato funkce umožňuje získat textové řetězce zadané do příkazové řádky (i číslo takto získané je chápáno jako text). Syntaxe funkce je následující:
(getstring "výzva")
Do uvozovek namísto slova výzva dopíšeme text, jakým jsme k zadání řetězce vyzváni. Pokud budeme chtít zadat řetězec s mezerou, musíme doplnit argument  t, který zajistí, že klepnutí na mezerník bude chápáno jako mezera a ne jako Enter. Syntaxe pak bude následující:
(getstring t "výzva")
 
strcat – je funkce,která spojí více textových řetězců v jeden (STRing CATenation). Syntaxe funkce je jednoduchá:
(strcat prvnitext druhytext tretitext ...)

Přístup k vlastnostem objektů pomocí VisualLISPu

Kategorie » téma: LISP

23.08.2010 09.21 | Jan Panoch | Komentáře: 2 komentářů | Přečteno: 17400x

Přístup k objektům pomocí VisualLISPu

Kategorie » téma: LISP

02.08.2010 11.01 | Jan Panoch | Komentáře: 0 komentářů | Přečteno: 10293x

V předchozím příspěvku “Nástroj pro rychlé zjištění informací o entitě” jsme si vytvořily nástroj, který do příkazové řádky vypíše vlastnosti vybraného objektu. Protože jsme v tomto příspěvku již mírně zasáhli do oblasti VisualLISPu ukážeme si v dalším volném pokračování princip práce s vlastnostmi objektu právě pomocí tohoto programovacího jazyka.

VisualLISP nahrazuje a rozšiřuje původní AutoLISP, přitom ale umí pracovat se staršími programy napsanými v AutoLISPu a i s jeho funkcemi. Hlavní přínos VisualLISPu je umožnění přístupu k objektům AutoCADu a ostatních aplikací na AutoCADu založených pomocí rozhraní ActiveX (což tedy z pohledu roku 2010 není zas taková bomba). Pro uživatele to prakticky přináší mimo jiné daleko pohodlnější přístup k objektům a jejich vlastnostem.

Na začátek vytvoříme ve VisualLispu jednoduchou funkci, která bude podobná nástroji z předchozího příspěvku. Příkazem VLIDE nebo VLISP zobrazíme editor kódu VisualLISPu. Pomocí ikony, přes File / New File nebo pomocí Ctrl+N založíme a uložíme nový soubor, který pojmenujeme třeba VlastnostiEntiy.lsp

Kód prvního programu bude vypadat následovně:

(defun c:info  ()
    (vl-load-com)

    (setq  entity1           (entsel "\nVyberte  objekt: ")
           entity2           (car entity1)
           vla-entity        (vlax-ename->vla-object entity2)
    )
)

K tomu uveďme pár základních informací.

Nástroj pro rychlé zjištění informací o entitě

Kategorie » téma: AutoCAD | AutoCAD Architecture | LISP

26.07.2010 08.15 | Jan Panoch | Komentáře: 0 komentářů | Přečteno: 20797x

Potřebujeme-li v AutoCADu nebo jiných produktech na něm založených zjistit základní informace o nějaké entitě ve výkresu, používáme obyčejně paletu Properties. Existuje ale ještě další způsob, který sice není tak komfortní, ale na druhou stranu jím můžeme zjistit i informace, které se v této paletě nevyskytují a ke kterým bychom se doslali až pomocí jiných příkazů.

< 1 2 Stránka 3 4 >