Csv-fájlok attribútumadatainak frissítése
Az AutoCAD adat export parancs használata. amely az Eszközök menüben található, kivonhatja az attribútumadatokat Excel táblázatkezelő fájlba vagy egy, a rajzon található táblába. Ezzel a funkcióval sokan találnak jó ötletet az attribútum szerkesztésére közvetlenül a táblázatban, de a módosított attribútumok megjelenítésre kerülnek a rajzon, vissza kell állítani az exportot.
Ez a cikk egy ilyen szubrutin példáját írja le. Két fájlokat (ATTRIBUTE-TABLE UPDATE.LSP és attribútum-TABLE UPDATE.DCL). és lehetővé teszi az export az egyes blokkok (esetünkben - a tűzjelző érzékelők) azok tulajdonságok és az x-y koordinátáit egy CSV fájlba (szövegfájlt adatokat vesszővel elválasztva), amely alkalmas nyílás Excel. A program lehetővé teszi az attribútumok módosítását és a rajzba illesztett objektumok törlését, ha azok nem szerepelnek a CSV fájlban.
Ábra. 1. Az Export / Import opció kiválasztása.
Töltsd le innen az alprogramot. Csomagolja ki és mentse el a fájlt az AutoCAD telepítési könyvtárában lévő Support mappába. Az Eszközök menü Terhelés alkalmazás parancsával válassza ki az ATTRIBUTE-TABLE-UPDATE.LSP fájlt, és töltse be.
Alprogram indításához írja be a parancssorba az ATU parancsot, majd megjelenik egy helyi menü, amelyben kiválaszthatja az opciót. Két lehetőség közül választhat: Export (alapértelmezés szerint) és Import (1. ábra).
Ha kiválasztja az Exportálást. megjelenik az Eredményfájl párbeszédpanel, megkérdezi a szobaszámot, amelyben a riasztásérzékelők érdekelnek (lásd 2. ábra). Adja meg a fájl nevét.

Ábra. 2. Eredmények Fájl párbeszédpanel
Az exportálási eredményekkel rendelkező fájl CSV-kiterjesztéssel rendelkezik, és a Notepad vagy az Excel programban is megnyitható. A 3. ábra egy Excel táblázatban megnyitott fájlt mutatja. Módosítást tehet az ADDRESS1 oszlopban, és szükség esetén törölhet egy vagy több sort, ha a megfelelő változtatásokat a rajzon kell elvégezni.
Ábra. 3. táblázat EXCEL.
Miután elvégezte az összes módosítást és mentette a fájlt CSV formátumban, újra elvégezheti az alprogramomat az AutoCAD programban. a parancssorba írja be az ATU-t, csak most válassza az Importálás opciót a program kezdeti kérésében. Megjelenik a Fájl importálása párbeszédpanel, ahol ki kell választania a CSV fájlt, amely a rajzban végrehajtani kívánt változtatásokat tartalmazza.

Ábra. 4. Az Import fájl párbeszédpanel.
Miután kiválasztotta az importálandó fájlt, a rajz megváltozik, és megjelenik a Címváltozások párbeszédpanel (5. ábra). Az OK gombra kattintva törölheti a párbeszédpanelt, és ellenőrizheti a rajzot, ha minden változás helyes. Vegye figyelembe, hogy bármikor megjelenítheti a Címváltozások párbeszédpanelt az aktuális rajzi munkamenetben a parancssorban (Módosítások megjelenítése).

Ábra. 5. A Cím módosítása párbeszédpanel.
A segédprogram kódjának leírása
Megkezdése után én szokásos funkciókat kezeli a hibákat és ellenőrzési rendszer változók, a program aktiválja az ATT-DATA-OUT funkció, amely meghatározza a lehetőséget Export és Import és okoz GETBLKS jellemző, kinyomtatott és DO-IMPORT, attól függően, hogy mit CSV fájl kiválasztása - exportálás vagy importálás.
A GETBLKS létrehozza az INSERT parancs által beillesztett összes objektum listáját, amelyet feldolgozni kell. Példánkban mereven meghatároztuk a "FA_DEVICE_INIT" (tűzjelző érzékelő) blokk nevét. Megváltoztathatja azt a blokk nevét, amellyel meg fog dolgozni két IF utasításban az alábbi kódban:
(ha (és (= (vla-get-HasAttributes blkobj): vlax-true)
(> (strlen bobjname) 13)
(= (substr bobjname 1 14) "FA_DEVICE_INIT")
);
(progn
(setq inspt (vla-get-InsertionPoint blkobj))
(setq ipt (vlax-safearray-> list (vlax-variant-value inspt)))
(setq attribs (vla-getAttributes blkobj))
(setq sarr (vlax-változat-érték attribútumok))
(setq num (vlax-safearray-get-u-bound sarr 1))
(ha (és (> 0 szám)
(<(car ipt) 3000.0)
)
Példánkban a második és a harmadik sor határozza meg a beillesztett blokkok beillesztésének paramétereit. A program logikája szerint ez akkor történik, ha a blokk neve több mint 13 karakter és az első 14 karakter FA_DEVICE_INIT. Ezt megváltoztathatja, ha a program feldolgozza a blokkokat. A bemutatott kód utolsó előtti vonala azt jelzi, hogy figyelembe kell venni a blokk beillesztését, ahol a beillesztési pont kisebb, mint 3 000 "az X tengely irányába.
A következő függvény, kinyomtatott, hivatkozik több specifikus attribútumok - Address1 és DEVICE_LOCATION - meg lehet változtatni őket a blokk attribútumok a szegmensben kinyomtatott funkció kódot, amelyet az alábbiakban mutatjuk be:
("ADDRESS1, Név, Device_Location, padló, X, Y" f1 sor)
(ismétlés (hosszúság blklst)
(setq lst (nth (setq i (1 + i)) blklst))
(setq str (strcat (cadr (assoc "ADDRESS1" (ötödik első)))
""
(első autó)
""
(cadr (assoc "DEVICE_LOCATION" (n.1. lst)))
""
(ita padló)
""
(rtos (autó (utolsó lst)))
""
(rtos (cadr (utolsó lst)))
), a strcat vége
); _ setq vége
(írási sor str f1)
); _ az ismétlés vége
A DO-IMPORT funkció megnyitja a CSV-fájl importálását, és felhívja a DO-ADDRESS függvényt, hogy olvassa el ezt a fájlt egymás után, visszaadja a beillesztési pontok listáját és a változtatások listáját a Címváltozások párbeszédpanelen. Ha módosítani szeretné a kódnak ezt a részét az Ön igényeinek megfelelően, akkor ragaszkodnia kell a CSV fájlszerkezethez, ahogy az az 1. ábrán látható. 3, figyelembe véve az alábbi kritériumokat:
Az első mező a módosítható attribútumérték (ADDRESS1 ebben a programban).
A második mező a beillesztendő mondat neve.
A harmadik mező a második attribútum értéke, amely egyenértékű a DEVICE_LOCATION értékkel.
A negyedik mező a szoba szám.
Az utolsó két mező a blokk beillesztési pontjának X és Y koordinátái.
A fent említett attribútumnevek az utolsó két függvényben is megtalálhatók, és szükség esetén ennek megfelelően módosítani kell.