Vytisknout stránku | Zavřít okno

Konverzia asociačneho zoznamu do súboru

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=23470
Datum vytištění: 15.kvě.2026 v 21:54


Téma: Konverzia asociačneho zoznamu do súboru
Odeslal: michaelflyer
Předmět: Konverzia asociačneho zoznamu do súboru
Datum odeslání: 08.lis.2016 v 14:36
Zdravím. 
Potreboval by som nasmerovať správnym smerom, ktorým sa mám uberať pre jednoduchosť a prehľadnosť zoznamu. 
Program, ktorý robím má v sebe množstvo dát. Sú zapísané v premennej (nazvem ju all_assoc_list). Potreboval by som ich uložiť na opätovné načítanie - aby sa mi nestratili pri zavretí autocad-u. 
Aall_assoc_list sa skladná z rôznych zoznamov a podzoznamov:
(("AA" ( 1 . 180.0)...( 8 . 150.0))...("AN" ( 1 . 10.0 10.10 0.0 )...( 4 . 10.0 10.10 0.0))...("NS" ("H" (1 . 40))( "UV" (1 . 40))))
"AA" a ž "AN" sú zoznamy, ktoré mi hovoria o bodoch, názve entýt, šírky, alebo hrúbky materiálov. "NS" sú nastavenia rôznych komponentov. 

Toto by som potreboval nejako uložiť do textového súboru. Problém je však s úvodzovkami ("). Síce (chr 34) funguje ale pridá tam aj lomítko (/). 

Vedeli by ste mi poradiť akým spôsobom by som mal ukladať dáta? či už do nejakého súboru, alebo priamo do dwg súboru? Alebo existuje niečo úplne iné ako ukladať napríklad asociačný zoznam? Alebo to ukladať inak a nie ako asociačný zoznam?
Chcel by som sa však vyhnúť veľkému množstvu malým súborov. Aj tak by mi to neriešilo text s úvodzovkami.


-------------
Michal MUCHA



Odpovědi:
Odeslal: Vladimír Michl
Datum odeslání: 08.lis.2016 v 14:53
Uvozovky stačí zformátovat správným tiskovým příkazem. Ukládání je možné dovnitř DWG (asi do dictionary) nebo do externího souboru - záleží co je to za data a zda patří ke konkrétnímu DWG.
 
Pro zápis do externího souboru by měl stačit standardní (prin1):
(prin1 mujseznam mujLSPsoubor)
možná v podobě:
(setq f (open "c:\\data\\mojedata.lsp" "w"))
(princ "'" f)
(prin1 mujseznam f)
(close f)
a pro zpětné načtení pak obyčejný (load):
(setq mujseznam (load "c:\\data\\mojedata.lsp"))
 


-------------
Vladimír Michl (moderátor)
ARKANCE CZ - https://arkance.world - arkance.world
(podpora viz helpdesk.arkance-systems.cz)


Odeslal: michaelflyer
Datum odeslání: 09.lis.2016 v 12:51
Ďakujem. Veľmi dobrý nápad dať to do .lsp súboru. 
Perfektne...


-------------
Michal MUCHA



Vytisknout stránku | Zavřít okno