Menghubungkan TOPDB dengan AutoCAD menggunakan interface ADS
Makalah Presentasi Purnastudi di Bakosurtanal, 13 September 1993
Dipl.-Ing. Fahmi Amhar
Karyasiswa Bakosurtanal. Alumnus Teknik Geodesi pada
Institute of Photogrammetry & Remote Sensing, Vienna University of Technology, Austria
1. Pengantar
Tulisan ini merupakan sinopsis dari suatu tugas akhir riset untuk meraih gelar “Diplom-Ingenieur” (setara dengan Magister di Indonesia) di Institute of Photogrammetry & Remote Sensing, Vienna University of Technology, Austria.
Persoalan yang diberikan adalah:
Saat ini software yang cukup populer digunakan untuk editing data topografis (hasil surveying atau stereo-plotting fotogrametri) adalah AutoCAD, yang hingga kini baru saja masuk release 12.
Dengan software ini, dan juga Personal Computer yang tersedia (yang pada umumnya memiliki RAM 4 MB – maximum 16 MB), masih cukup berat untuk mengolah data topografis yang berjumlah besar. Sebagai gambaran, bila satu titik 3D membutuhkan 16 bytes (untuk identitas, X, Y, Z), maka kapasitas sistem hanya maksimum sejuta titik. Bila titik-titik itu adalam matriks tinggi dengan jarak grid 10 meter, maka itu berarti sistem hanya mampu mengolah sekaligus area seluas maksimum 10 km x 10 km. Lalu bagaimana bila kita berkepentingan mengolah data topografis seluas satu propinsi atau bahkan satu negara?
Di Institut of Photogrammetry & Remote Sensing sejak 1991 dikembangkan software database topologi TOPDB (Loitsch & Molnar, 1991). Software ini nanti akan berfungsi mirip dengan Oracle, yakni dapat diakses dengan SQL yang diperluas (dinamai TOPSQL) atau diintegrasikan dalam software aplikasi lain. TOPDB dibuat seluruhnya dalam Fortran-77 dan disediakan dalam bentuk Fortran libraries.
Dengan tersedianya TOPDB, maka diharapkan akses ke database topografi yang sangat besar (dapat dikatakan memenuhi harddisk yang saat ini sudah tersedia sebesar 2 GB) tetap dapat diakses. Dalam 2GB dapat disimpan kira-kira 125 juta titik. Dengan jarak titik 10 x 10 meter maka didapat area kira-kira 111 km x 111 km (atau sekitar 1 Tile degree). Di masa depan diharapkan akan ada harddisk dengan kapasitas yang jauh lebih besar lagi, sehingga seluruh pulau Jawa atau bahkan mungkin seluruh dunia bisa disimpan di sana.
Maka timbul pemikiran untuk menghubungkan AutoCAD dengan TOPDB. Tujuannya adalah agar data besar yang disimpan dalam TOPDB dapat dilihat, dikelola atau diedit dalam AutoCAD, sementara AutoCAD dapat memanfaatkan sistem penyimpanan data yang melebihi kemampuan yang sudah dimilikinya.
Kemungkinan menghubungkan AutoCAD dengan TOPDB ini baru dimungkinkan sejak AutoCAD release 11, sejak disediakannya fasilitas ADS. Bagaimana itu dilakukan adalah inti penelitian ini.
2. ADS Programming
Sejak release 11 (keluar awal 1992), AutoCAD bisa diprogram dengan menggunakan apa yang disebut AutoCAD Development System (ADS). Programming bisa dikerjakan dalam bahasa tinggi C atau Fortran. Untuk memanggil fungsi-fungsi ADS diperlukan bagian initialisasi dan realisasi. Setelah itu fungsi-fungsi dari ADS-library untuk mengolah objek-objek geometri pada AutoCAD dapat digunakan.
Program C atau Fortran itu kemudian dicompile dengan compiler yang menyediakan ADS-library (misal Watcom C/Fortran atau Metaware High C). Compiler ini bekerja pada protected mode, sementara compiler biasa (misalnya Microsoft-C) hanya bekerja pada real mode.
Hasilnya adalah sebuah file dengan extension .exp. File ini bisa diload ke AutoCAD dengan perintah xload. Maka fungsi-fungsi yang dibuat dalam program itu akan “public” di AutoCAD dan bisa dipanggil langsung sebagai perintah biasa di AutoCAD atau digunakan sebagai fungsi-fungsi di dalam Autolisp.
Keuntungan menggunakan ADS dibanding Autolisp adalah:
- · memory yang bisa digunakan sangat besar, karena bekerja dalam protected mode, sedang Autolisp terbatasi hingga 64 KB saja.
- · fungsi pustaka yang tersedia sangat banyak,, karena praktis kita bisa menggunakan seluruh fungsi yang sudah pernah dibuat di C atau Fortran (seperti Numerical Recipe atau NAG-Library).
- · bisa melakukan akses langsung ke hardware.
Kerugian ADS adalah waktu pengembangan program yang relatif lebih lama. Dan untuk bisa memprogram dalam ADS kita mesti banyak menyelami struktur data dalam AutoCAD. Sedang perilaku fungsi-fungsi ADS yang berkaitan dengan objek bisa diamati dengan mencoba-coba fungsi yang sejenis di Autolisp.
Dalam kaitannya dengan TOPDB, maka berarti pekerjaan ini membutuhkan penguasaan dalam:
– Fortran77 (sebagai bahasa di TOPDB)
– SQL / TOPSQL (bahasa database di TOPDB)
– Autolisp (sebagai bahasa di AutoCAD)
Pada AutoCAD release 12, tersedia juga AutoCAD SQL-Extension, namun belum menyangkut SQL untuk data geometrinya, melainkan baru semacam atribut yang di-attached ke data geometri. Release 12 juga menyediakan fasilitas dialog grafis yang lebih baik. Namun pada penelitian ini masih digunakan apa yang ada di release 11.
3. Topological Database (TOPDB)
Bila dalam database konvensional selalu terdapat setidaknya tipe data sebagai berikut:
INTEGER …. untuk bilangan bulat
NUMBER …. untuk bilangan real, namun secara internal disimpan juga dalam INTEGER*4, hanya sistem menyimpan posisi koma desimal.
CHAR ……. untuk menyimpan teks
DATE ……. untuk menyimpan tanggal-bulan-tahun
TIME ……. untuk menyimpan waktu
maka dalam database topologi yang bisa menyimpan data-data topografi, diperlukan setidaknya tambahan tipe data berikut:
POINT …. untuk objek dengan hanya satu koordinat 2D (x,y) / 3D (x,y,z) yang posisinya juga bisa diindeks dalam suatu spatial index.
LINE ….. untuk objek dengan rangkaian koordinat 2D (x,y) / 3D (x,y,z) dan secara topologi ada pada satu garis atau di AutoCAD disebut polyline.
WINDOW … untuk objek dengan empat koordinat 2D (x,y) yang membentuk segi empat (window).
AREA ……. untuk objek dengan rangkaian koordinat 2D (x,y) / 3D (x,y,z) dan secara topologi ada pada satu garis tertutup (di AutoCAD “closed polyline”, atau di Arc/Info “polygon”).
Karena terdapat objek-objek topologis, maka diperlukan pula “topological operator”, yaitu:
a.X.b := perpotongan data topologi a dengan b
a.<.b := a ada di dalam b
a.>.b := a ada di luar b
Contoh load dari TOPDB
SELECT identifier, objecttype, coordinates
FROM jawa
WHERE … { bisa ada beberapa opsi }
scoptype = ‘BREAKLINE’;
zaccuracy < 0.5;
creator = ‘Unyil’ or creator = ‘Ucrit’;
insertdate < ‘13.09.1993’;
coordinates .X. line($L);
$L adalah simbol yang diberikan untuk aktivitas interaktif, di sini adalah digitasi sebuah garis (Line) di AutoCAD.
Contoh update/delete ke TOPDB:
UPDATE jawa SET COORDINATES = (
… x1, y1, z1
x2, y2, z2
…
) WHERE identifier = …. ;
DELETE jawa WHERE identifier = …;
Dengan kemampuan ini, maka TOPDB memberi fasilitas untuk load, update atau menghapus data dengan kriteria spatial maupun tematis tertentu.
Bila kemampuan ini dihubungkan dengan AutoCAD, maka pengguna AutoCAD akan mendapat fasilitas untuk membuka objek geometris tertentu saja, misalnya hanya yang dibuat oleh Unyil sebelum tanggal tertentu di kawasan tertentu, meskipun data itu menyatu dengan data yang dibuat orang lain dalam suatu bank data yang sangat besar.
4. ATD Project
Projek penelitian ini memberikan solusi konkrit berupa software penghubung yang disebut ATD (dari singkatan AutoCAD-TOPDB). Software ini jalan di interface AutoCAD-Command-prompt dan juga di AutoCAD menu, dan juga sebagai fungsi-fungsi yang bisa dipanggil sendiri oleh user dengan Autolisp. Namun data di belakang AutoCAD itu adalah TOPDB, dengan struktur file fisik yang dibuat TOPDB. Meski demikian, user bisa pula melakukan ekspor/impor ke file internal AutoCAD yaitu DWG atau DXF.
Kesulitan utama menghubungkan AutoCAD dengan TOPDB adalah mensinkronkan data di kedua sistem. Untuk itu perlu dibangun suatu Synchronization-Table (S-Table) yang mendaftar semua record yang diload dari TOPDB ke AutoCAD, sehingga:
– Data dari TOPDB hanya dimuat satu kali ke AutoCAD
– Tidak perlu meload seluruh data TOPDB ke AutoCAD
– Dengan identifikasi object di AutoCAD bisa diakses data tematis di TOPDB (yang tidak turut diload ke AutoCAD)
– Perubahan pada object akan dicatat di S-Table dan kemudian pada waktu SAVE akan discan, sehingga hanya data baru atau data yang diupdate saja yang akan disimpan.
Struktur S-Table terdiri dari:
– ID (di TOPDB – 4 bytes integer)
– Entityname of structure
(AutoCAD – 2*4 bytes integer)
– Status ( 1 byte)
Dengan demikian, setiap kali dilakukan panggilan dari AutoCAD ke TOPDB, data yang dikeluarkan sebagai objek geometris di AutoCAD workspace (entities) akan dicatat, baik identifiernya di TOPDB maupun entitynamenya di AutoCAD. Sementara identifier TOPDB bersifat tetap (constant) dan diberikan oleh sistem pada saat objek itu disimpan, maka entityname di AutoCAD workspace adalah berubah-ubah (dinamis) sesuai objek yang telah ada sebelumnya di workspace itu, namun tetap selama sesi AutoCAD.
Bila data dikeluarkan dari TOPDB ke AutoCAD tidak sebagai objek geometris yang bisa dimanipulasi, namun hanya sebagai tampilan grafis, maka tidak perlu dicatat dalam S-Table.
Biasanya ini dilakukan bila kita bekerja dengan data yang sangat besar, jauh melebihi kapasitas RAM. Maka sebelum melakukan load selective dengan kriteria tertentu, kita akan lakukan SELECT * di TOPDB namun opsi keluarnya adalah pada sekedar tampilan grafik. Pada ADS yang dipakai adalah fungsi ads_grdraw.
Demikian juga untuk menciptakan objek baru, mengupdate atau menghapus di AutoCAD. Harus ada mekanisme agar aktivitas ini juga terrekam di S-Table, sehingga ketika sesi akan diakhiri dan dilakukan Save, maka hanya objek baru atau objek yang diubah saja yang akan disimpan, sedang objek yang dihapus juga harus dihapus dari TOPDB..
Agar seluruh aktivitas ini terkontrol, maka pada AutoCAD dilakukan penggantian seluruh command dan menu interface ke user. Begitu ATD di-on-kan, maka user hanya dapat menggunakan command atau perintah yang disediakan ATD, hingga ATD di-off-kan lagi. Deaktivasi command dan menu konvensional ini cukup dilakukan dengan Autolisp.
Oleh karena itu arsitektur ATD secara keseluruhan adalah: bagian terluarnya adalah AutoCAD dengan ATD-application dalam AutoLisp, kemudian ATD-Kernel yang diprogram dengan Fortran77 dan ADS, lalu TOPDB yang diprogram dengan Fortran77 dan diakses dengan TOPSQL.
Fig.-1. Arsitektur ATD
IDENTIFIER1 | Objecttype1 |
X |
Y | Z |
X |
Y | Z | ||
X |
Y | Z | ||
IDENTIFIER2 | Objecttype2 |
X |
Y | Z |
IDENTIFIER3 | Objecttype3 |
X |
Y | Z |
X |
Y | Z | ||
X |
Y | Z | ||
X |
Y | Z | ||
X |
Y | Z | ||
X |
Y | Z | ||
1= |
UPDATE | |||
IDENTIFIER1 | ENTITYNAME7 | STATUS |
0= |
UNCHANGED |
-1= |
DELETE | |||
ENTITYNAME1 |
“POINT” |
X |
Y | Z |
ENTITYNAME2 |
“POINT” |
X |
Y | Z |
ENTITYNAME3 |
“POLYLINE” |
|
||
ENTITYNAME4 |
“VERTEX” |
X |
Y | Z |
ENTITYNAME5 |
“VERTEX” |
X |
Y | Z |
ENTITYNAME6 |
“VERTEX” |
X |
Y | Z |
ENTITYNAME7 |
“SEQEND” |
|
||
ENTITYNAME8 |
“POLYLINE” |
|
||
ENTITYNAME9 |
“VERTEX” |
X |
Y | Z |
ENTITYNAME10 |
“VERTEX” |
X |
Y | Z |
ENTITYNAME11 |
“SEQEND” |
|
||
ENTITYNAME12 |
“POINT” |
X |
Y | Z |
Fig.-2. Gambaran S-Table
5. Implementasi
Untuk memudahkan pemakaian telah dibuat 2 jenis manual: “Programmer-Manual” dan “User Manual”. Karena projek ini dibuat di Austria yang berbahasa Jerman, kedua manual ditulis dalam bahasa Jerman. Versi bahasa Inggris dan (bila memungkinkan) bahasa Indonesia sedang dikerjakan.
Secara singkat, perintah yang telah disediakan dalam ATD adalah:
ATDABORT |
Abort ATD (without Confirmation) |
ATDCON |
Connect ATD to TOPDB |
ATDDWG |
Import a DWG-file and insert to TOPDB |
ATDDXF |
Import a DXF-file and insert to TOPDB |
ATDEDI |
Edit the Geometry of an object |
ATDEND |
Save and Exit from ATD |
ATDERA |
Erase an object |
ATDGR1 |
Switch to “text modus” of TOPDB output |
ATDGR2 |
Switch to “vector modus” of TOPDB output |
ATDGR3 |
Switch to “entity modus” of TOPDB output |
ATDHLP |
Show ATD-Help file |
ATDID |
Graphical identification of an object with output of non geometrical information |
ATDIDE |
Graphical identification of an object with editing possibilities of non geometrical information |
ATDINS |
Insert of AutoCAD-drawing in TOPDB |
ATDLIN |
Create line object |
ATDMENU |
Load ATD-menu (file ATD.MNU) |
ATDNEW |
Working with a new TOPDB-Table |
ATDOBJ |
Load data from TOPDB, output as entities |
ATDOFF |
Deactivation of ATD (not exit from AutoCAD) |
ATDON |
Activation of ATD |
ATDPOI |
Create point object |
ATDQUIT |
Exit form ATD & AutoCAD (without Save) |
ATDRAS |
Load raster-file |
ATDSET |
Interactive change of ATD system variable |
ATDSIN |
Insert selected content of AutoCAD drawing to TOPDB |
ATDSWS |
Save temporaly condition of workspace |
ATDUNDO |
Undo Last ATDEDI/ATDERA |
ATDVAR |
Show ATD-Systemvariables |
ATDVEC |
Load data from TOPDB, output as “vectors” (just graphics, no manipulation possible) |
ATDVER |
Show the version of ATD and TOPDB |
ATDZOOM |
Zoom with Raster in background |
SQL |
Common TOPSQL interface |
Debugging Tools |
|
ATDASC |
Show any text file (ASCII) |
ATDBAK |
Save the actual S-table |
ATDLST |
Show the List of coordinates |
ATDREC |
Load the last saved S-table |
ATDSQ0 |
Turn off the log-file of TOPSQL command |
ATDSQ1 |
Turn on the log-file of TOPSQL command |
ATDSSR |
Show the log-file of TOPSQL command |
ATDSST |
Show the S-table |
6. Kesimpulan dan Rencana Masa Depan
Apa yang telah direalisasi dalam ATD merupakan suatu lompatan yang cukup besar, mengingat hingga 1992 belum ada suatu software CAD yang bisa mengolah data secara database. AutoCAD sendiri hingga release 12 ini juga belum bisa menampilkan data raster seperti citra Landsat atau foto udara digital untuk didigit secara on-screen.
Sementara itu software database yang populer seperti ORACLE atau DBIV juga belum mampu mengelola data spatial, baik vektor maupun raster.
Meski demikian, ide-ide yang dimunculkan dari penelitian ini diharapkan bisa segera diserap di kalangan industri.
Untuk jangka pendek, ATD akan ditingkatkan dengan menambah 1 byte lagi pada S-table sehingga mampu mengelola 255 table dalam satu AutoCAD workspace.
Kemudian data raster yang selama ini masih disimpan external akan disimpan pula dalam TOPDB.
Dan karena sudah ada AutoCAD release 12 maka feature dialogbox akan dimanfaatkan agar software ini makin user-friendly.
Referensi
Amhar, F.: Anbindung einer topologischen Datenbank (TOPDB) an Autocad über die ADS-Schnittstelle. Diplomarbeit am Institut für Photogrammetrie und Fernerkundung der TU Wien, 1993.
Autodesk, Inc.: AutoCAD Development System (TM), Programmer’s Reference Manual. Publication AC11ADS-E1, Dec 1990.
Autodesk, Inc.: Autodesk SQL Extension Reference Manual, 1992.
Haussteiner, K.: Aufbau eines Gewässerinformations-system für Österreich mit Hilfe einer relationalen Datenbank. Diplomarbeit am Institut für Photogrammetrie und Fernerkundung der TU Wien, 1989.
Institut für Photogrammetrie und Fernerkundung der TU Wien: TOPDB Dokumentation (unveröffentlicht). Wien, 1992.
Jones, F.H., Martin, L.: AutoCAD und Datenbanken: Grundlagen professioneller CAD-Datenbank-technik. tewi Verlag, München, 1989.
Loitsch J., Molnar, L.: A Relational Database Management System with Topological Elements and Topological Operators. Paper presented at the Conference SPATIAL DATA 2000 at Christ Church, Oxford University, on 17-20 Sept 1991.
Michalicka, P.H.: ADS für AutoCAD, Version 11: Die effektive Einbindung externer Anwendungen in AutoCAD-Applikationen mit Hilfe von ADS. IWT Verlag, Vatersteten bei München, 1991.
Smith, J., Gesner, R.: Inside AutoLISP: Using AutoLISP to Customize AutoCAD. New Riders Publishing, Thousand Oaks CA, 1989.
Watcom Publication Limited: Watcom-Fortran 77 Language Reference, 1992.
Leave a Reply