Tag: VBA Excel

[XLS-SVY-24]: Plotting Cross section dari Excel ke Autocad Versi 1.2

Referensi : [XLS-SVY-13]: Plotting Cross Section dari Excel ke AutoCAD Versi 1.1
Platform :  
Lokasi File : download

 

Tulisan ini adalah tindak lanjut dari beberapa comments/komentar dari posting [XLS-SVY-13]: Plotting Cross Section dari Excel ke AutoCAD Versi 1.1. Walaupun tidak semua harapan pembaca terpenuhi

Perbaikan pada versi ini adalah :

  1. Nama program diganti dengan extensi *.xlam dan contoh file dalam format *.xlsx
  2. Mengganti menu dengan menggunakan “Custom UI Editor” sehingga menu baru ditampilkan dalam Ribbon Menu dan bisa di jalankan oleh Microsoft Excel 2007 ke atas.
  3. Merubah coding program menjadi metode “late binding” sehingga diharapkan program bisa dijalankan di Autocad 2000 ke atas tanpa harus setting Autocad Library.

Seperti halnya saat menjalankan program vba excel, pilih “Enable Macro” jika akan menggunakan program

Tampilan menu di Microsoft Excel 2016 :

image

Cara menjalankan program masih sama dengan tulisan pada [XLS-SVY-13]: Plotting Cross Section dari Excel ke AutoCAD Versi 1.1:

 

~~ selamat mencoba ~~

[XLS-SVY-13]: Plotting Cross Section dari Excel ke AutoCAD Versi 1.1

Referensi : [XLS-SVY-007]: Plotting Cross Section dari Excel ke AutoCAD
Platform : Autocad , Excel 2007/Excel 2003
Lokasi File :

Pada posting [XLS-SVY-007]: Plotting Cross Section dari Excel ke AutoCAD, telah diuraikan tahapan untuk membuat gambar cross section dari file excel.

Posting kali ini akan saya akan mencoba untuk versi plotting cross section dari excel ke autocad dengan beberapa fasilitas tambahan. Berikut adalah snap shot program vba-excel / macronya:

image

Fasilitas tambahan seperti yang ditampilkan di atas adalah:

  • Ada tambahan custom menu bar, sehingga tidak lagi menggunakan menu run macro
  • Ada setting parameter skala horizontal, skala vertikal, tinggi huruf dan tinggi band (informasi baris) di bawah cross section
  • Bisa memproses beberapa sheet sekaligus
  • Setting elevasi datum
  • Type labelling bisa di tiap perubahan slope atau di tiap pertambahan jarak.
  • Bisa dilakukan checking cross section di excel dengan cara menggambarkan cross section dalam bentuk grafik atau chart secara otomatis.

Contoh hasil plotting cross section di autocad dengan type labelling yang berbeda

Labelling di tiap perubahan slope Labelling di tiap penambahan jarak
image image
image image

Cara menjalankan program:

1. Download programnya

2. Set security macro ke medium.

Untuk excel 2003, click menu ‘Tool2’>>’Macro’>>’Security’
Pilih Security ‘Medium’. Untuk excel yang lain silahkan di cari di menu help atau bisa dicari lewat om google.

3. Extract kedua zip file hasil download dan tempatkan dalam satu folder. Setelah di-extract terdapat dua file yaitu PlotCrossSection2003.xla dan 0000-2000.xls

Tahapan berikutnya adalah setting autocad library dalam program PlotCrossSection2003.xla. Jika Anda menggunakan autocad versi 2011, maka tidak perlu dilakukan setting ini, karena saat saya membuat program ini, program Autocad Versi 2011 telah terinstall di komputer saya.

Tetapi jika menggunakan autocad versi yang lain, maka perlu dilakukan setting reference excel ke autocad. Setting ini hanya dilakukan sekali saja (langkah nomer 4 sampai 10 di bawah) sepanjang Anda tidak merubah versi autocad.

Apabila anda mempunyai beberapa versi autocad dalam komputer, maka pilih salah satu saja sesuai dengan autocad yang akan dipakai.

4. Dalam program excel, Buka file PlotCrossSection2003.xla. Click [Enable Macros], jika ada notifikasi ‘Microsoft Excel Security Notice’

5. Tekan tombol Alt+F11 untuk mengaktifkan Visual Basic Application (VBA) Editor.

6. Click tanda plus di kiri VBAProject (PlotCrossSection2003.xla)

7. Double click mdlPlot2CAD

8. Dari menu [Tool], pilih [References]

image

Contoh disamping adalah VBA sudah ter-reference ke AutoCAD 2011 Type Library.

Jika Anda menggunakan Autocad  versi lain, maka akan ada pesan error MISSING Library. Uncheck MISSING Library tersebut, kemudian scroll down untuk mencari library yang sesuai dengan AutoCAD yang terintall di komputer.

Contoh : Apabila autocad yang terinstall adalah AutoCAD versi 2006, cari library dengan nama AutoCAD 2006 Type Library

click [OK], jika sudah dilakukan setting library

9. Masih di VBA Editor, click menu [File], pilih [Save PlotCrossSection2003.xla]

10. Tekan Tombol Alt-Q untuk keluar dari VBA Editor.

11. Jalankan program AutoCAD

12. Pada program excel,  buka file contoh cross section [0000-2000.xls]

13. Masih di program excel, click tombol image di menu cadex. Jika Anda menggunakan excel 2007, tombol ini ada di groups ribbon [Add-Ins]

14. Lakukan setting plot cross section, misal sebagai berikut:

image

15. Kemudian click [OK]

16. Jika ingin mengecek lebih dulu gambar cross section berupa chart excel, clik tombol [Yes], jika ingin langsung melihat hasilnya di AutoCAD, click [No]

17. Gambar cross section akan tergambar di autocad.

Ada beberapa pengunjung yang menginginkan jika format angka desimal ditampilkan ditampilkan 3 digit atau ada tiga angka di belakang tanda titk desimal.

Silahkan download  file program terbaru yang sudah aku rubah sedikit codingnya untuk menfasilitasi setting jumlah digit desimal. Tampilan programnya menjadi:

image

Gambar 1: Setting Cross Section

Ada juga beberapa pengunjung yang menanyakan bagaimana kalo untuk menggambar long section?

Program tersebut bisa juga untuk menggambarkan long section dengan cara memasukkan angka dikolom [B] dimulai dengan angka 0 (nol) di baris pertama atau [B2] kemudian dimasukkan stasiun berikutnya ke bawah sampai ke stasiun terakhir. Elevasi untuk masing-masing stasiun tetap dimasukkan di kolom [C].

Contoh format spreadsheet untuk longsection jika adalah:

image

Berikut adalah uraian tahapan setting di Excel 2007 dan AutoCAD 2011 dalam bentuk gambar:

1. Download programnya dari sjydrive / one drive atau dari dropbox

2. Extract zip file dalam satu folder untuk menampilkan dua file contoh data cross dan programnya:

image

3. Jalankan program Excel 2007

CARA SET SECURITY MACRO:

4. Click Tombol [Office] image, kemudian pilih [Excel Options]

image

5. Pada  [Excel Options], pilih [Trus Center] kemudian click [Trust Center Settings…]

image

6. Pada [Trust Center], pilih [Macro Setting], kemudian lakukan setting:

[Macro Settings]: [Disable all macros with notification]

[Developer Macro Setting]: check [Trust access to VBA project object model]

image

7. Click OK

Langkah 4 sampai 7 hanya dilakukan sekali saja, jika security macro sebelumnya belum diset seperti langkah di atas.

MEMBUKAN FILE PROGRAM CROSS SECTION

8. Buka file [PlotCrossSection2003.xla] hasil extract zip file

9. Jika keluar [Security Notice] seperti di bawah, click [Enable Macros]

image

Langkah 9 dilakukan setiap membuka file [PlotCrossSection2003.xla].

CARA SETTING LIBRARY AUTOCAD 2011 DI VBA-EXCEL:

10. Setelah file [PlotCrossSection2003.xla] dibuka dan tombol [Enable Macros] di click, tekan tombol kombinasi Alt+F11 untuk membuka Visual Basic Editor (VBE).

image

11. Double click [mdlPlot2CAD] di bawah VBAProject (PlotCrossSection2003.xla) untuk menampilkan program utama penggambaran cross section.

12. Masih di VBE, pada menu [Tool], pilih [References…]

image

13. Check atau cari di [Available References] kemudian pilih [AutoCAD 2011 Type Library]

Jika sebelumnya, terpilih reference [Missing:AutoCAD 2011 Type Library], uncheck pilihan tersebut, kemudian pilih reference sesuai dengan versi AutoCAD Anda.

— AutoCAD 2006 pilih  AutoCAD 2006 Type Library

— AutoCAD 2010 pilih  AutoCAD 2010 Type Library

— AutoCAD 2011 pilih  AutoCAD 2011 Type Library

— seandainya sudah ada AutoCAD 2020 pilih  AutoCAD 2020 Type Library

image

14. Jika sudah dipilih, click [OK]

15. Masih di VBE click tombol [Save] untuk menyimpan perubahan reference.

Langkah 10 sampai 15 hanya dilakukan sekali saja, jika  sebelumnya belum pernah dilakukan setting reference ke autocad atau ada perubahan versi autocad.

16. Masih di VBE, pada menu [File], pilih [Close and Return to Microsoft Excel]

image

17. Pada Excel 2007, pilih ribbon [Add-Ins] untuk menampilan short cut program cross section.

image

18. Buka file contoh cross section [0000-2000.xls] hasil extract zip

image

19. Buka atau jalankan program AutoCAD dan JANGAN tutup program Excel 2007.

image

20. Click icon image, kemudian lakukan setting cross section seperti di Gambar 1: Setting Cross Section kemudian click [OK]

21. Pilih [Yes] jika cross section akan digambar di Excel sebaliknya pilih [No] jika akan digambar di AutoCAD

image

Jika dipilih [No], maka tampilan cross section di autocad:

image

#silahkan mencoba#

==zainul==

[XLS-CIV-01]: Menghubungkan Excel ke Land Development Desktop dengan Visual Basic Application

 

Referensi : Help di Excel dan Help di LDD
Platform : Excel 2003/2007 Land Development Desktop 2006
Lokasi File :

 

Posting kali ini merupakan janji saya yang pernah aku tulis di wall Facebook Group Land Desktop Indonesia.

Waktu itu aku berjanji untuk menulis langkah-langkah di visual basic application khususnya di program excel (VBA-Excel) agar bisa meng-akses database, membuat, mengedit ataupun meng-update object-object Land Development Desktop (LDD).

Sebelumnya mohon maaf dalam posting kali ini tidak disajikan snap shot atau print screen dari program LDD karena saya sudah tidak mempunyai program tersebut walaupun sebelumnya saya pernah membuat di VBA-Excel untuk LDD. VBA-Excel tersebut sangat membantu para drafter dalam hal otomasi penggambaran long profile, cross section dan perhitungan cut and fill. Program tersebut sudah tidak saya pakai lagi setelah saya bermigrasi ke civil 3D.

Dalam posting ini akan diuraikan tahapan-tahapan sebagai berikut:

  • Setting references di VBA-Excel
  • Membuat code atau macro sederhana untuk membuat object di land development desktop

Setting References di VBA-Excel

1. Jalankan program Excel, kemudain tekan tombol Alt+F11 untuk membuka Visual Basic Application Editor (Macro) atau bisa disebut VBAIDE (VBA Integrated Development Environment)

2. Di VBAIDE, klik menu [Insert] kemudian pilih [Module]. Hasil proses ini akan muncul module baru yang secara default diberi nama Module1

3. Pilih atau click Module1. Kemudian dari menu [Tool], pilih [References]. Secara default VBA-Excel akan menampilkan referenses yang sedang dipakai seperti gambar di bawah:

image

Pada gambar di samping reference ‘Microsoft Excel 12.0 Object Library’ dan ‘Microsoft Office 12.0 Object Library’ secara default terpilih karena saya menggunakan excel 2007.

Jika menggunakan Microsoft Office 2003, maka referencenya menjadi ‘Microsoft Excel 11.0 Object Library’ dan ‘Microsoft Office 11.0 Object Library’

4. Scroll down sampai ditemukan reference ‘AutoCAD 2006 Type Library’, click check box

5. Scroll down lagi dan pilih reference sbb:

5.1. Autodesk Civil Engineering Land 3.0 Object Library (AeccXLand30)
5.2. Autodesk Civil Engineering UI Land 3.0 Object Library (AeccXUiLand30)

5.3 AEC Base 4.7 Application Library (AecXUiBase47)
5.4 AEC Base 4.7 Object Library (AecXBase47)

 

6. Dari langkah 4 sampai 5 VBAIDE sudah terreferensikan dengan LDD versi 2006. Jika Anda menggunakan versi yang lain, carilah reference dengan nama seperti di atas yang membedakan hanya versi angkanya saja. Jika ada beberap program LDD terinstall, maka pilih salah satu saja. Saya tidak menyarankan beberapa program LDD beda versi terinstall dalam satu komputer karena pada saat running program biasanya ada masalah.

Membuat Code atau Visual Basic Code

1. Double click Module1 kemudian copy atau tulis syntax berikut:

Option Explicit ‘cek variable hrs sudah didefinisikan explicitly
Dim acadApp As AcadApplication ‘object autocad application
Dim LddApp As AeccApplication ‘object LDD application 
Dim actProject As AeccProject ‘object project active di LddApp 
Dim projDoc As AeccDocument ‘object document active di actProject

Fungsi untuk koneksi ke Aplikasi Autocad
‘InPut: tidak ada
‘OutPut: TRUE jika Autocad Diaktifkan 
Function ConnectCAD() As Boolean
On Error Resume Next
Set acadApp = GetObject(, “AutoCAD.Application”)
If Err.Number Then
MsgBox “Autocad Belum diaktifkan”, vbCritical
Err.Clear
ConnectCAD = False
Exit Function
End If
ConnectCAD = True
End Function
‘=====End ConnectCAD===============

Fungsi untuk koneksi ke LDD 2006
‘InPut: tidak ada
‘OutPut: TRUE/FALSE
‘References:
‘1. AutoCAD 2006 Type Library
‘2. Autodesk Civil Engineering Land 3.0 Object Library (AeccXLand30)
‘3. Autodesk Civil Engineering UI Land 3.0 Object Library (AeccXUiLand30)
‘4. AEC Base 4.7 Application Library (AecXUiBase47)
‘5. AEC Base 4.7 Object Library (AecXBase47)

Function InitializeLandDevelopment(AcadApp As AcadApplication, _
LddApp As AeccApplication) As Boolean
On Error Resume Next
Set LddApp = AcadApp.GetInterfaceObject(“Aecc.Application”)
If Err Then
InitializeLandDevelopment = False
Err.Clear
Debug.Print Err.Description
Else
InitializeLandDevelopment = True
End If
End Function

‘========End InitializeLandDevelopment===================================

‘Contoh Aplikasi Macro untuk Melist Station alignment

Sub ListStationDariAligment()
If Not ConnectCAD Then Exit Sub ‘keluar dr program jika tidak bisa connect ke AutoCAD
If Not InitializeLandDevelopment Then Exit Sub ‘keluar dr program jika tidak bisa connect ke LDD

Set actProject = LddApp.ActiveProject
Set projDoc = LddApp.ActiveDocument

Dim Aligns As AeccAlignments, aLg As AeccAlignment
Set aLg = aProj.Alignments(1) ‘memilih alignment pertama
Dim STA() As Double, XY() As Double, i As Integer, j As Integer
i = 0
ReDim Preserve STA(i)
STA(i) = aLg.AlignEntities(0).StartingStation ‘mengambil station pertama
For Each algEntt In aLg.AlignEntities
i = i + 1
ReDim Preserve STA(i)
STA(i) = algEntt.EndingStation ‘mengambil station berikutnya
    Next
‘List station ke activesheet di kolom A
    n As Integer
n = UBound(STA) + 2
Range(“A1”) = “Station”
Range(“A2:A” & n) = WorksheetFunction.Transpose(STA())
End Sub

Fungsi yang lain, silahkan berlatih dan dikembangkan sendiri.

Dulu saya berlajar dari Help tentang vba/activex customization dan juga tidak malu untuk bertanya ke http://forums.autodesk.com/t5/AutoCAD-Land-Desktop/bd-p/83

===Selamat Mencoba===