Nefunkční LISP aplikace po přechodu na AutoCAD 19
Vytištěno z: CAD Fórum
Kategorie: Autodesk - stavebnictví, strojírenství, CAD/GIS
Název fóra: AutoCAD
Popis fóra: Otázky kolem aplikací AutoCAD a AutoCAD LT, AutoCAD web, prohlížečů, DWG a DXF, Design Review, Navisworks, nadstavby, Drive a cloud Autodesk
URL: https://www.cadforum.cz/forum/forum_posts.asp?TID=28125
Datum vytištění: 19.čer.2026 v 02:57
Téma: Nefunkční LISP aplikace po přechodu na AutoCAD 19
Odeslal: Dostojevskij
Předmět: Nefunkční LISP aplikace po přechodu na AutoCAD 19
Datum odeslání: 06.pro.2018 v 16:26
|
Zdravím a prosím o radu. Ve verzi 16 jsem používal jednoduchou aplikaci pro vkládání uzlových bodů do křivky dle zvoleného intervalu. Po přechodu na verzi 19 tato aplikace přestala fungovat. Přikládám zdrojový kód. Nevěděl by někdo, jak ho upravit na novou verzi? Děkuji.
(Defun c:staniceni () (if (and (setq pline (car (entsel "\nVyber křivku:"))) (eq (cdr (assoc 0 (entget pline))) "LWPOLYLINE") (setq int (getdist "\nVlož interval staničení:")) (setq in int) ) (while (Setq pt (vlax-curve-getPointAtDist pline int)) (setq ppt (vlax-curve-getparamatpoint pline pt)) (vlax-invoke (vlax-ename->vla-object pline) 'AddVertex (1+ (fix ppt)) (list (car pt) (Cadr pt)) ) (setq int (+ int in)) ) ) )
------------- f.m.d.
|
Odpovědi:
Odeslal: Vladimír Michl
Datum odeslání: 06.pro.2018 v 16:52
Funguje i ve verzi 2019. Možná doplňte definici lokálních symbolů a (vl-load-com).
------------- Vladimír Michl (moderátor) ARKANCE CZ - https://arkance.world - arkance.world (podpora viz emea.support.arkance.world)
|
Odeslal: Dostojevskij
Datum odeslání: 06.pro.2018 v 23:20
Děkuji za reakci, ale bohužel se v tom nevyznám. Tu aplikaci jsem nepsal já, poskytl mi ji zde na fóru jeden uživatel na můj dotaz, já pouze editoval dialogy. Byl bych Vám vděčný, kdybyste mne nasměroval, kam do toho kódu patří "definice lokálních symbolů" a kam (vl-load-com), pokusím se s tím poprat... :/ Díky moc.
------------- f.m.d.
|
Odeslal: pavelstyl
Datum odeslání: 07.pro.2018 v 06:06
|
Asi nějak takto. Pavel Štyl (Defun c:staniceni (/ pline int in pt ppt) (vl-load-com) (if (and (setq pline (car (entsel "\nVyber křivku:"))) (eq (cdr (assoc 0 (entget pline))) "LWPOLYLINE") (setq int (getdist "\nVlož interval staničení:")) (setq in int) ) (while (Setq pt (vlax-curve-getPointAtDist pline int)) (setq ppt (vlax-curve-getparamatpoint pline pt)) (vlax-invoke (vlax-ename->vla-object pline) 'AddVertex (1+ (fix ppt)) (list (car pt) (Cadr pt)) ) (setq int (+ int in)) ) ) )
|
Odeslal: Vladimír Michl
Datum odeslání: 07.pro.2018 v 06:06
Zkuste úplně na začátek přidat řádek: (vl-load-com)
Nebo ještě lépe použijte aplikaci VTXdist, která nabízí i tuto funkčnost. Viz: https://www.cadforum.cz/cadforum/pridani-vrcholu-krivky-po-stejne-dlouhych-usecich-tip10090 - https://www.cadforum.cz/cadforum/pridani-vrcholu-krivky-po-stejne-dlouhych-usecich-tip10090
------------- Vladimír Michl (moderátor) ARKANCE CZ - https://arkance.world - arkance.world (podpora viz emea.support.arkance.world)
|
Odeslal: Dostojevskij
Datum odeslání: 07.pro.2018 v 11:45
Díky vám oběma, pánové, ale bohužel nefunguje ani jedna z možností. U Staničení proběhne výběr křivky i zadání intervalu, ale uzlové body se nepřidají. U VTXdist se objeví pouze dialog "Select a polyline to divide/measure:" a ten po výběru křivky zmizí...
------------- f.m.d.
|
Odeslal: Vladimír Michl
Datum odeslání: 07.pro.2018 v 13:04
To je nějaké divné. Modifikujete opravdu křivku (LWPOLYLINE)? Zadáváte staničení v jednotkách odpovídajících reálnému rozměru oné křivky? Ve VTXdist není použit žádný dialog a pokud nevyberete křivku, vypíše se varování.
------------- Vladimír Michl (moderátor) ARKANCE CZ - https://arkance.world - arkance.world (podpora viz emea.support.arkance.world)
|
Odeslal: Dostojevskij
Datum odeslání: 28.led.2019 v 14:43
Zdravím, pánové. Po delší době se vracím k problému nefunkční aplikace. Hledal jsem všude možně ale bez úspěchu. K otázce výše: ano, modifikuji křivku a zadávám staničení v jednotkách odpovídajících jejímu reálnému rozměru. VTXdist se ukončí po prvním kliknutí a to kamkoli, varování "not a lwpolyline !" se nezobrazí. Nemůže to být chyba v instalaci nebo v nastavení?
------------- f.m.d.
|
Odeslal: Vladimír Michl
Datum odeslání: 28.led.2019 v 14:56
Instalace u těchto LISP nástrojů není potřeba. Ta aplikace se "potichu" ukončí jen v případě, že kliknete někam "do prázdna". Vybíráte opravdu vybíratelnou entitu, v nezamčené hladině?
------------- Vladimír Michl (moderátor) ARKANCE CZ - https://arkance.world - arkance.world (podpora viz emea.support.arkance.world)
|
Odeslal: Dostojevskij
Datum odeslání: 28.led.2019 v 16:16
Měl jsem na mysli instalaci a nastavení přímo AutoCADu 2019. A jinak dělám všechno, jak píšete. VTXdist se ukončí, ať kliknu kamkoliv - na křivku, na úsečku, do prázdna. Pokusím se zachytit obrazovku a pošlu.
------------- f.m.d.
|
Odeslal: Dostojevskij
Datum odeslání: 28.led.2019 v 17:45
|
Zde můj chabý pokus o demonstraci...
https://youtu.be/xHsmoB6eUxs" rel="nofollow - https://youtu.be/xHsmoB6eUxs
------------- f.m.d.
|
Odeslal: Vladimír Michl
Datum odeslání: 28.led.2019 v 22:18
Tam bohužel není vidět to nejdůležitější - příkazový řádek a výzvy nebo chyby, které se do něj vypisují. Když tak jednodušší na zachycení je možná Autodesk Screencast.
------------- Vladimír Michl (moderátor) ARKANCE CZ - https://arkance.world - arkance.world (podpora viz emea.support.arkance.world)
|
Odeslal: Dostojevskij
Datum odeslání: 28.led.2019 v 22:51
|
Teď s CMD. https://youtu.be/8d8dwIIQDRk" rel="nofollow - https://youtu.be/8d8dwIIQDRk
------------- f.m.d.
|
Odeslal: Vladimír Michl
Datum odeslání: 29.led.2019 v 07:09
|
Zkuste prosím napsat hlášení toho VTXdist. Je to v globálním USS?
Zkoušel jsem VTXdist horem dolem a žádný problém v násilném ukončování tam nevidím.
------------- Vladimír Michl (moderátor) ARKANCE CZ - https://arkance.world - arkance.world (podpora viz emea.support.arkance.world)
|
Odeslal: Ondřej Urban
Datum odeslání: 29.led.2019 v 10:32
|
Zdravím, pravda jedu na 2017, ale funguje oboje i s jiným souřadným systémem. Testováno jen systémem drag end drop - "staniceni.lsp" hozeno z průzkumníka na daný výkres a vyzkoušeno, OK. pěkný den Ondra
------------- Ondřej Kurkan Urban PERI, spol. s r.o. http://www.peri.cz" rel="nofollow - http://www.peri.cz
WIN 10, 64GB, RTX A4500, 2x27" ACA 2023, ntb LENOVO P 16 G1
|
Odeslal: johny
Datum odeslání: 29.led.2019 v 12:20
|
Zkuste následovat po mě: https://autode.sk/2MKgsTf" rel="nofollow - https://autode.sk/2MKgsTf
Nakreslete KŘIVKU 150 jednotek VLIDE Nový Toggle Break Add Watch Load active edit window Activate Autocad Zadejte Staniceni A pak rozumnou rychlostí pořád klikejte Step Into, nebo mačkejte F8. Až budete vyzván, vyberete tu křivku a zadejte 100.
Takle vytrasujete na čem vám to spadne. Pak postněte videa a váš testovací výkres.
PS. A přístě až budete nahrávat něco s příkazovýcm řádkem tak prosím s více než jedním viditelným řádkem, kde to důležitý uteče a není vidět!!
|
Odeslal: Dostojevskij
Datum odeslání: 29.led.2019 v 17:03
|
Díky všem za reakce. Johnyho PS mne konečně nakoplo k tomu, co už jsem měl udělat dávno, a to rozšířit příkazový řádek. Pardon. Nuže toto jsme tam našel:
Příkaz: VTXDIST Select a polyline to divide/measure: ; chyba: no function definition: VLAX-ENAME->VLA-OBJECT
Příkaz: Příkaz: STANICENI Vyber křivku: Vlož interval staničení:100 ; chyba: no function definition: VLAX-CURVE-GETPOINTATDIST
------------- f.m.d.
|
Odeslal: Vladimír Michl
Datum odeslání: 29.led.2019 v 17:33
Vida, a je jasno :-)
Stačí přidat ten řádek (vl-load-com) avizovaný v 5. zprávě shora.
------------- Vladimír Michl (moderátor) ARKANCE CZ - https://arkance.world - arkance.world (podpora viz emea.support.arkance.world)
|
Odeslal: Dostojevskij
Datum odeslání: 29.led.2019 v 17:50
|
Ale ten sem tam přidal hned, jak jste mi to napsal!
(Defun c:staniceni (/ pline int in pt ppt) (vl-load-com) (if (and (setq pline (car (entsel "\nVyber křivku:"))) (eq (cdr (assoc 0 (entget pline))) "LWPOLYLINE") (setq int (getdist "\nVlož interval staničení:")) (setq in int) ) (while (Setq pt (vlax-curve-getPointAtDist pline int)) (setq ppt (vlax-curve-getparamatpoint pline pt)) (vlax-invoke (vlax-ename->vla-object pline) 'AddVertex (1+ (fix ppt)) (list (car pt) (Cadr pt)) ) (setq int (+ int in)) ) ) )
------------- f.m.d.
|
Odeslal: Vladimír Michl
Datum odeslání: 29.led.2019 v 17:52
Pak tedy ještě zkuste postupy dle: https://www.cadforum.cz/cadforum/chyba-no-function-definition-vlax-ename-vla-object-tip12122 - https://www.cadforum.cz/cadforum/chyba-no-function-definition-vlax-ename-vla-object-tip12122
------------- Vladimír Michl (moderátor) ARKANCE CZ - https://arkance.world - arkance.world (podpora viz emea.support.arkance.world)
|
Odeslal: Dostojevskij
Datum odeslání: 02.úno.2019 v 17:27
Nuže, pánové, všem vám díky za reakce. Problém konečně vyřešen díky poslednímu odkazu pana Michla, jemuž tímto děkuji obzvláště za ochotu a trpělivost. Bylo to v registrech - doplnil jsem chybějící klíče a vše funguje. Díky! 
------------- f.m.d.
|
|