Zobrazit plnou verzi příspěvku: Spot heights mac

knebllad
17.09.2015, 11:08
Ahoj,Něvěděl by prosím někdo kde je problém při náhrání vyškových kot do autocad na osx? přikaz VKNULA_funguje bez problému, ale při příkazu VKS už skačena nenaskočí ?Děkuji

Vladimír Michl
17.09.2015, 14:32

Část kódu tohoto příkazu používá funkce (vlax) a ty nejsou ve verzi Mac dostupné (využívají Windows ActiveX). Obvykle jde kód ale celkem snadno upravit. Pokud je tu autor (myslím že @alfred), mohl byste jej přesvědčit na úpravu (popř. v tom můžeme pomoci).

knebllad
24.09.2015, 09:53
Uživatele jsem kontaktoval, ale nemá možnost to vyzkoušet. Nejspíš by mi nedokázal pomoci. Byla by tedy možná další varianta , že by jste mi s tím mohli pomoci? Díky

alfred
24.09.2015, 10:05
Nevím které funkce MAC verze AutoCadu neobsahuje. Nemám to kde vyzkoušet. Jsou to funkce VLAX nebo i VLA ?Je to trvalý stav, nebo budou funkce doplněny v některé z dalších MAC verzí? Vlax funkce jsou používány u utility "kotvysk.lsp" pro práci s dymamickým blokem a jsou tam relativně často. Pravděpodobně by to šlo obejít klasickými funkcemi, ale jednoduché by to nebylo. Určitě na to teď nemám čas a vůbec nemám kde pak utilitu otestovat. Pokud má někdo jiný do toho chuť a čas, tak utilita je ke stažení zde: http://www.jremes.cz/index.php/spot-heightsnebo http://alfredcadpage.wz.cz/

Vladimír Michl
24.09.2015, 12:07

Přístupové funkce (vla-get-VLASTNOST) jdou nahradit univerzální funkcí (getpropertyvalue e VLASTNOST), ale v té aplikaci jsou i nějaké složitější konstrukce. Jinak obdobně (vla-put-NĚCO) jde nahradit (setpropertyvalue), jde využívat funkci (ispropertyreadonly), apod. To pak poběží i na Macu. Funkce vla- vlax- nebudou na Macu k dispozici protože jsou to jen interface funkce pro objekty Microsoft ActiveX.

alfred
24.09.2015, 12:44
V utilitě používám funkce: (vla-get-effectivename(vlax-ename->vla-object(vlax-safearray->list(vlax-variant-value (vla-getdynamicblockproperties(vlax-get-property (vlax-variant-value(vlax-put-property(vlax-property-available-p.Funkce: (getpropertyvalue (ispropertyreadonly(setpropertyvaluevůbec neznám. To jsou nějaké nové funkce v nových verzích? AutoCad 2011 je nezná...Chybějící VLA a VLAX funkce jsou otázkou pouze MAC verze, nebo ty funkce nejsou obsaženy ani v nových verzích AutoCadu?To vypadá, že přepsání utility pro MAC znamená nefunkčnost ve starších verzích AutoCadu. Nebo jak jsem psal vytvoření vlastních funkcí. Některé části kódu, kde jsou výše zmíněné VLAX či VLA funkce jsou takové parády - například natažení kačeny podle délky textu popisu kóty. Jiné funkce jsou jen pro kontrolu zda při aktualizaci (funkce VKO) kačen se aktualizují pouze bloky s výškovou kótou. Bohužel kotvysk.lsp není úplně triviální funkce, ale je to společně s bloky od PepyR velmi šikovné....Kód je otevřen, takže úpravy může udělat kdokoli.

Vladimír Michl
24.09.2015, 12:54

Ty zmíněné funkce byly přidány myslím ve verzi 2012. Fungují na Macu i ve Windows. Ve Windows jsou ty ActiveX funkce dostupné i nadále. Univerzální řešení pro Mac i starší verze (podporující ActiveX) by muselo detekovat prostředí (nebo existenci oněch funkcí) a přepínat v kódu využívané funkce.

alfred
24.09.2015, 13:30
Jestli tomu dobře rozumím, tak Autodesk ve verzi přidal nějaké nové funkce, které dělají prakticky to samé co dělají funkce již obsažené (využívající Microsoftí knihovny). Při portování na MAC se pak na ty staré funkce prostě vykašlali. A dovolím si spekulaci - protože staré funkce využívají Microsoftí knihovny je jejich existence závislá jen na vůli Microsoftu a pokud Microsoft další vývoj nebude podporovat, tak funkce zaniknou...

Vladimír Michl
24.09.2015, 14:49

Nevykašlali - ty funkce přidali právě jako náhradu vla- vlax-, které na Macu nedávají smysl (jsou jen rozhraním pro ActiveX). Problém je v tom, že Apple se (celkem logicky) vykašlal na implementaci Microsoft ActiveX do MacOS. Objekty, metody a vlastnosti využívající ActiveX jsou hodně integrální součástí Windows a hlavně všech aplikací - ty určitě hned tak nezaniknou.

alfred
24.09.2015, 15:32
Pokud to má být náhrada za ty funkce, čekal bych, že na MACu přidají jednoduchou funkci, která VLAX funkci "přesmeruje" na funkci novou. Nebo nechají název funkce starý a předělají "jádro" tak, že nepoužívají ActiveX knihovny, ale dělají si to nějak po svém (mě jako uživateli je přece jedno jak funkce uvnitř funguje, pokud je stejná syntaxe a vrací to stejnou hodnotu).  Ale nic podobného právě neudělali. Prostě některé funkce nejsou a tedy není zachována plná kompatibilita... Takhle jsem to myslel že se na to vykašlali.To je vlastně jedno. Nedalo by se pro MAC nějak snadno dopsat funkce(vla-get-effectivename(vlax-ename->vla-object(vlax-safearray->list(vlax-variant-value (vla-getdynamicblockproperties(vlax-get-property (vlax-variant-value(vlax-put-property(vlax-property-available-pNěco jako například(defun vla-get-effectivename (.... / )....nové funkce tak aby procedura vrátila stejnou hodnotu jako funkce vla-get-effectivename ve windows...)Pak by se ta část kódu přilepila do utility a vesele by to mohlo fungovat. Možná by to bylo nejsnazší zprovoznění té utility na MAC verzi. Ale přiznávám, že to možná není moc systémové.