SlideShare a Scribd company logo
1 of 38
Download to read offline
PRAKTIKUM ALAT PENGEMBANGAN PERANGKAT LUNAK
TUTORIAL MEMBUAT CRANE SEDERHANA MENGGUNAKAN COPPELIASIM
LUSIANA DIYAN NINGRUM (2210181051)
2 D4 TEKNIK KOMPUTER B
POLITEKNIK ELEKTRONIKA NEGERI SURABAYA
SURABAYA
2020
TUTORIAL MEMBUAT CRANE SEDERHANA MENGGUNAKAN COPPELIASIM
A. Peralatan dan Bahan
1. PC/Laptop yang sudah terinstall software Simulator VREP/CoppeliaSim
B. Percobaan
1. Buka Software CoppeliaSim
2. Sebelum mulai membuat simulasi, Anda bisa mengatur ukuran dari lantai pada area kerja dengan
cara klik RezisableFlor, dan nanti akan muncul dialog box untuk memasukkan ukuran yang
diperlukan
3. Buat body Crane berbentuk kubus dengan cara klkik kanan pada area kerja. Add > Primitive shape
> Cuboid.
4. Masukkan ukuran cuboid untuk X-coord = 1.2; Y-coord = 1.2; Z-coord = 0.3 > Tekan OK
5. Ganti nama Cuboid menjadi Base, dengan cara double klik untuk rename, setelah selesai tekan
Enter.
6. Sorot Base.Pilih Object/Item Translation/Porsition. Isikan pada tab position X-coord = -2 Lalu
close.
7. Beri warna pada Base dengan cara. Double Klik icon kubus pada nama Base. Maka akan muncul
dialog box seperti berikut
Pilih Adjust Color > Ambient/diffuse component. Ubah Saturation =0 dan Luminosity =0.36.
Maka Base akan berubah warna sebagai berikut
8. Buat tiang Crane dengan cara yang sama seperti membuat Base. Bedanya ukuran pada X-coord =
0.4, Y-coord = 0.4, dan Z-coord = 7.7
9. Sorot Base.Pilih Object/Item Translation/Porsition. Isikan pada tab position X-coord = -2 Lalu
close.
Maka Base akan tampak seperti berikut.
10. Ubah nama Cuboid menjadi Tower
11. Untuk menambahkan warna pada Tower. Dengan cara Double klik pada icon kubus. Lalu akan
muncul dialog box seperti berikut
12. Lakukan langkah yang sama seperti nomor 3. Masukkan ukuran X-coord = 11, Y-coord = 0.3, dan
Z-coord = 0.3
13. Ubah nama Cuboid menjadi Arm
hasil perubahan >
14. Untuk mengubah posisi Arm, sorot nama Arm kemudian pilih Object/Item Translation/Position >
Mouse Translation > Check along x dan along z.
Drag Arm menuju ke posisi yang sesuai, seperti berikut kemudian close dialog box Object/Item
Translation/Position
15. Untuk menambahkan warna pada Arm. Dilakukan dengan cara. Double klik icon kubus pada Arm
maka akan mucul dialog box seperti berikut.
Pilih adjust Color > Ambient/diffuse component > Atur Blue = 0.
Maka tampilan Arm akan seperti gambar di bawah ini
16. Lakukan langkah yang sama seperti no 3 untuk menambahkan beban. Ubah ukuran Cuboid menjadi
x=0.4m; y=0.4m; z=0.6m.
17. Ganti nama Cuboid menjadi CounterWeight
hasil perubahan >
18. Sorot CounterWeight. Pilih Object/Item Translation/Position > Mouse Translation. Check along x
dan along z.
Drag CounterWeight menuju ke posisi yang diperlukan, jika sudah sesuai lalu tekan close
19. Untuk memberi warna pada CounterWeight, lakukan Double klik icon kubus pada CounterWeight
maka akan mucul dialog box seperti berikut.
Pilih adjust Color->Ambient/diffuse component. Atur nilai RGB dan HSL untuk mendapatkan
warna yang anda inginkan. maka akan seperti berikut
Warna yang dihasilkan pada CounterWeight
20. Lakukan langkah yang sama dengan nomor 3 untuk membuat Crab. Masukkan ukuran X-coord =
0.55; Y-coord = 0.35; Z-coord = 0.35.
21. Ganti nama Cuboid menjadi Crab
hasil perubahan >
22. Sorot Crab. Pilih Object/Item Translation/Mouse Translation. Check along z.
Drag Crab menuju ke titik yang dikehendaki kemudian tekan close
23. Untuk memberi warna pada Crab. Dilakukan dengan cara. Double klik icon kubus pada Crab maka
akan mucul dialog box seperti berikut.
Pilih adjust Color->Ambient/diffuse component. Atur nilai RGB dan HSL untuk mendapatkan
warna yang anda inginkan. maka akan seperti berikut
Warna yang dihasilkan pada Crab
24. Klik Kanan pada area kerja. Pilih Add > Primitive Shape > Cylinder
25. Masukkan ukuran cylinder. Pada X-coord = 0.1 dan Z-coord = 0.1
26. Ganti nama Cylinder menjadi UpperGuide
perubahan yang dihasilkan >
27. Sorot UpperGuide. Pilih Object/Item Translation/Position > Mouse Translation > Check along z.
Lalu drag UpperGuide sesuai dengan posisi yang dikehendaki
28. Klik kanan pada area kerja. Pilih Add > Primitive Shape > Cylinder
29. Masukkan ukuran untuk cylinder. X-coord = 0.6 dan Z-coord = 0.6
30. Ganti nama Cylinder0 menjadi Mess
hasil perubahan >
31. Sorot Mess. Pilih Object/Item Translation/Mouse Translation. Check along y dan along z.
Lalu drag Mess menuju posisi yang dikehendaki, kemudian tekan close
32. Untuk memberi warna pada Mess, lakukan Double klik icon kubus pada Mess maka akan mucul
dialog box seperti berikut.
Pilih adjust Color > Ambient/diffuse component. Atur nilai RGB dan HSL untuk mendapatkan
warna yang anda inginkan. maka akan seperti berikut
Perubahan warna yang dihasilkan :
33. Kelompokkan bagian – bagian penyusun Crane
hasil pengelompokan >
34. Untuk membuat Base menjadi non dinamic. Digunakan langkah seperti berikut. Double klik icon
kubus. Pilih show Dinamic Property Dialog. Maka akan muncul seperti berikut.
Un-check pada checkbox “Body is dynamic”
35. Untuk membuat Tower menjadi non dinamic. Digunakan langkah seperti berikut. Double klik icon
kubus. Pilih show Dinamic Property Dialog. Maka akan muncul seperti berikut.
Un-check pada checkbox “Body is dynamic”
36. Berikutnya kita menghubungkan Tower dengan Arm, dengan cara klik kanan pada area kerja > add
> Joint > Revolute
37. Ganti nama Revolute_joint menjadi Arm_actuator
hasil perubahan nama >
38. Sorot nama Arm_actuator, kemudian klik icon scene properties dan ubah lenght =0.3, dan
Diameter=0.6
39. Pindah posisi dari objek tersebut dengan cara Pilih Object/Item Translation/Position > Mouse
Translation. Check along x dan along z.
Drag objek menuju posisi yang dikehendaki
40. Sorot Revolute_joint dan Tower. Pilih Object/Item Translation/Position. Klik Apply to Selection.
41. Sorot Revolute_joint. Pilih Object/Item Translation/Mouse Translation. Check along Z.
Drag Revolute_joint ke posisi yang dikehendaki
42. Drag arm_actuator ke dalam Tower kemudian letakkan Arm pada Arm_actuator seperti pada
gambar di bawah ini
hasil pengelompokan >
43. Double klik icon sehingga akan mucul dialog box. Klik Show Dinamic Property Dialog. Check
Motor Enable. Atur Target= 10, Maksimum = 5e3.
44. Tambahkan force sensor dengan cara klik kanan pada area kerja > Add > Force Sensor
45. Sorot Force_sensor. Klik icon Object/Item Translation/Position > Mouse Translation > centang
checkbox along X dan along Z. Kemudian letakkan sensor tepat dibawah CounterWeight
46. Lakukan pengelompokan dengan cara drag Force_sensor ke dalam Arm. Sehingga susunannya
menjadi seperti gambar di bawah ini.
> >
47. Tambahkan Object baru kembali, yaitu Primastic joint, dengan cara Klik kanan pada area kerja >
Add > Joint > Prismatic
48. Sorot Prismatic_joint. Pilih Object item shift/ Mouse Translation. Check alng x dan z. Sejajarkan
pada Crab.
49. Double Klik icon . Atur Length = 0.3 dan Diameters= 0.05
50. Klik Show Dynamic Property. Check Motor Enable. Atur Target =1 dan Maksimum = 1e3. Check
Lock Motor When.
51. Sorot Prismatic_Joint. Pilih Object Rotate/Rotation. Check Own Frame. Atur Y=90.
hasil >
52. Ubah nama Prismatic_joint menjadi Crab_actuator
hasil rename >
53. Drag Crab_actuator ke dalam Arm, kemudian drag Crab ke dalam Crab actuator
hasil pengelompokan >
54. Sorot Crab kemudian klik icon Scene Object Properties > Show dynamic properties dialog >
centang “Motor Enable” dan “Lock motor…” > masukkan nilai target velocity = 1 dan Maximum
force = 1e3
55. Ubah susunan object menjadi seperti di bawah ini
hasilnya menjadi >
56. Sorot Crab kemudian pilih icon Object/Item Translation/Position > centang along X kemudian drag
posisi Crab sesuai dengan yang dibutuhkan
57. Sorot Crab. Klik icon Scene Object Properties. Isikan nilai Pos range = 6.5
58. Atur ulang susunan object menjadi seperti pada gambar di bawah ini
59. Tambahkan object baru yakni Prismatic dengan cara klik kanan pada area kerja > Add > Joint >
Prismatic
60. Ganti nama Prismatic_joint menjadi Hoist_actuator
hasil penamaan >
61. Double klik icon . Atur Pos.min=-5.3 , Position=-5.3 dan Pos. Range= 5.3. atur lenght=0.5 ,
Diameter=0.05
62. Sorot Hoist_actuator. Klik Object/Item Translation/Position > Mouse Translation. Check along x
dan along z.
Drag Hoist_actuator ke posisi yang dikehendaki
63. Sorot Hoist_actuator. Klik Object/Item Translation/Position > Mouse Translation. Check along x
dan along z dan drag object menuju posisi yang dikehendaki kemudian klik close
64. Lakukan pengelompokan object kembali sehingga susunan object menjadi seperti gambar di bawah
ini
65. Tambahkan object baru yakni spherical dengan cara klik kanan pada area kerja > Add > joint >
spherical
66. Sorot Spherical. Klik Object Position/Mouse Translation. Check along x dan along z.
Drag object ke posisi seperti pada gambar berikut
67. Satukan object dengan cara tekan Shift + sorot Spherical_joint, Crab, Hoist_actuator kemudian
tekan Object/Item Translation/Position > Klik Apply X to sel. dan Klik Apply Y to sel. > close
68. Susun kembali pengelompokan object sehingga terbentuk seperti pada gambar di bawah ini
69. Edit dynamic properties dari Hoist akuator, menjadi seperti berikut, isi Maximum force = 6e3
70. Selanjutnya kita akan membuat GUI pada Crane. Dilakukan dengan cara Double klik script pada
Rezible_floor. Maka akan mncul kedua window untuk menuliskan script
Tuliskan script di bawah ini
function sysCall_init()
model=sim.getObjectAssociatedWithScript(sim.handle_self)
e1=sim.getObjectHandle('ResizableFloor_5_25_element')
e2=sim.getObjectHandle('ResizableFloor_5_25_visibleElement')
end
function sysCall_cleanup()
hideDlg()
end
function sysCall_nonSimulation()
local s=sim.getObjectSelection()
if s and #s>=1 and s[1]==model then
showDlg()
else
hideDlg()
end
end
function sysCall_beforeSimulation()
hideDlg()
end
function sysCall_beforeSimulation()
hideDlg()
end
function updateFloor()
local c=readInfo()
local sx=c['sizes'][1]/5
local sy=c['sizes'][2]/5
local sizeFact=sim.getObjectSizeFactor(model)
sim.setObjectParent(e1,-1,true)
local child=sim.getObjectChild(model,0)
while child~=-1 do
sim.removeObject(child)
child=sim.getObjectChild(model,0)
end
local xPosInit=(sx-1)*-2.5*sizeFact
local yPosInit=(sy-1)*-2.5*sizeFact
local f1,f2
for x=1,sx,1 do
for y=1,sy,1 do
if (x==1)and(y==1) then
sim.setObjectParent(e1,model,true)
f1=e1
else
f1=sim.copyPasteObjects({e1},0)[1]
f2=sim.copyPasteObjects({e2},0)[1]
sim.setObjectParent(f1,model,true)
sim.setObjectParent(f2,f1,true)
end
local p=sim.getObjectPosition(f1,sim.handle_parent)
p[1]=xPosInit+(x-1)*5*sizeFact
p[2]=yPosInit+(y-1)*5*sizeFact
sim.setObjectPosition(f1,sim.handle_parent,p)
end
end
end
function getDefaultInfoForNonExistingFields(info)
if not info['version'] then
info['version']=0
end
if not info['sizes'] then
info['sizes']={1,1}
end
end
function readInfo()
local data=sim.readCustomDataBlock(model,'XYZ_FLOOR_INFO')
if data then
data=sim.unpackTable(data)
else
data={}
end
getDefaultInfoForNonExistingFields(data)
return data
end
function writeInfo(data)
if data then
sim.writeCustomDataBlock(model,'XYZ_FLOOR_INFO',sim.packTable(data))
else
sim.writeCustomDataBlock(model,'XYZ_FLOOR_INFO','')
end
end
function updateUi()
local c=readInfo()
local sizeFact=sim.getObjectSizeFactor(model)
simUI.setLabelText(ui,1,'X-size (m):
'..string.format("%.2f",c['sizes'][1]*sizeFact),true)
simUI.setSliderValue(ui,2,c['sizes'][1]/5,true)
simUI.setLabelText(ui,3,'Y-size (m):
'..string.format("%.2f",c['sizes'][2]*sizeFact),true)
simUI.setSliderValue(ui,4,c['sizes'][2]/5,true)
end
function sliderXChange(ui,id,newVal)
local c=readInfo()
c['sizes'][1]=newVal*5
writeInfo(c)
updateUi()
updateFloor()
end
function sliderYChange(ui,id,newVal)
local c=readInfo()
c['sizes'][2]=newVal*5
writeInfo(c)
updateUi()
updateFloor()
end
function closeEventHandler(h)
sim.removeScript(sim.handle_self)
end
function showDlg()
if not ui then
xml = [[
<ui title="Speed Control" closeable="true" resizable="false"
activate="false">
<group layout="form" flat="true">
<label text="X-size (m): 1" id="1"/>
<hslider tick-position="above" tick-interval="1" minimum="1"
maximum="5" on-change="sliderXChange" id="2"/>
<label text="Y-size (m): 1" id="3"/>
<hslider tick-position="above" tick-interval="1" minimum="1"
maximum="5" on-change="sliderYChange" id="4"/>
</group>
<label text="" style="* {margin-left: 400px;}"/>
</ui>
]]
ui=simUI.create(xml)
if 2==sim.getInt32Parameter(sim.intparam_platform) then
-- To fix a Qt bug on Linux
sim.auxFunc('activateMainWindow')
end
updateUi()
end
end
function hideDlg()
if ui then
simUI.destroy(ui)
ui=nil
end
end
71. Tambahkan GUI pada Base dengan cara klik kanan pada Base. Pilih add=>associated child script=>non
Thearts. Maka akan muncul icon script seperti berikut.
72. Double klik pada icon script di samping Base yang akan menampilkan halaman untuk menuliskan script
Tuliskan script di bawah ini :
function sysCall_init()
arm=sim.getObjectHandle('Arm_Actuator')
crab=sim.getObjectHandle('Crab_Aktuator')
hoist=sim.getObjectHandle('Hoist_aktuator')
suction=sim.getScriptHandle('suctionPad')
xml = [[
<ui title="Speed Control" closeable="true" resizable="false"
activate="false">
<group layout="form" flat="true">
<label text="Arm speed (rad/s): 0.00" id="1"/>
<hslider tick-position="above" tick-interval="1" minimum="-10"
maximum="10" on-change="actuateArm" id="2"/>
<label text="Crab speed (m/s): 0.00" id="3"/>
<hslider tick-position="above" tick-interval="1" minimum="-10"
maximum="10" on-change="actuateCrab" id="4"/>
<label text="Hoist speed (m/s): 0.00" id="5"/>
<hslider tick-position="above" tick-interval="1" minimum="-10"
maximum="10" on-change="actuateHoist" id="6"/>
<label text="Magnet" id="7"/>
<button text="deactivated" on-click="actuateMagnet"
checkable="true" id="8"/>
</group>
<label text="" style="* {margin-left: 400px;}"/>
</ui>
]]
ui=simUI.create(xml)
end
function actuateArm(ui,id,newVal)
local val = 0.02*newVal
sim.setJointTargetVelocity(arm,val)
simUI.setLabelText(ui,1,string.format("Arm speed (rad/s): %.2f",val))
end
function actuateCrab(ui,id,newVal)
local val = 0.15*newVal
sim.setJointTargetVelocity(crab,val)
simUI.setLabelText(ui,3,string.format("Crab speed (m/s): %.2f",val))
end
function actuateHoist(ui,id,newVal)
local val = 0.25*newVal
sim.setJointTargetVelocity(hoist,val)
simUI.setLabelText(ui,5,string.format("Hoist speed (m/s): %.2f",val))
end
function actuateMagnet(ui)
local state = sim.getScriptSimulationParameter(suction,'active')
if state then
sim.setScriptSimulationParameter(suction,'active','false')
simUI.setButtonText(ui,8,"deactivated")
else
sim.setScriptSimulationParameter(suction,'active','true')
simUI.setButtonText(ui,8,"activated")
end
end
73. Tambahkan Magnet pada area kerja. Klik model Browser.
Component=>Grippers=>Suction pad. Maka akan muncul gambar seperti berikut. Pada dialog
box information klik OK > klik icon
74. Klik kanan pada area kerja. Pilih add > Primitive Shape >Cylinder. Biarkan ukuran pada
setting default nya. Lalu OK.
Kemudian akan tampil gambar cylinder seperti berikut
75. Sorot Cylinder > Klik Object/Item Translation/Position > Centang along Z > drag cylinder
pada posisi yang dikehendaki
76. Tambahkan object baru yakni force sensor dengan cara Klik kanan pda area kerja > Add >
Force Sensor
Kemudian akan tampil gambar seperti berikut
77. Sorot Force sensor > Klik Object/Item Translation/Position > Centang along Z > drag force
sensor pada posisi yang dikehendaki
78. Sorot Force Sensor dengan suction Pad. Pilih Object Item Translation/Position > Position >
Apply X to sel. Maka akan tampak seperti berikut.
79. Lakukan pengelompokan object seperti berikut
80. Double klik Hoist aktuator. Ubah Pos.Range=6 dan Pos. Min =6.
81. Lakukan kembali pengelompokan pada object
82. Sorot Cylinder dan Hoist aktuator. Pilih Object Time shift/Position/ Apply X to sel dan Apply
Y to sel. Maka akan tampak seperti berikut.
83. Sorot Cylinder. Pilih Object Time Shift/ Mouse Position. Check along z. Atur pada posisi
berikut.
84. Double klik icon pada suction pad. Ganti kondisi “active” dari True menjadi False > klik
Close
Hasil perubahan value :

More Related Content

Similar to Tutorial Membuat Simple Crane Menggunakan Coppeliasim

Bab vi . kegiatan belajar 3ds max
Bab vi . kegiatan belajar 3ds maxBab vi . kegiatan belajar 3ds max
Bab vi . kegiatan belajar 3ds maxRiyan Ibanezty
 
Bab vii. latihan dan tugas Kegiatan Belajar 3ds Max
Bab vii. latihan dan tugas Kegiatan Belajar 3ds MaxBab vii. latihan dan tugas Kegiatan Belajar 3ds Max
Bab vii. latihan dan tugas Kegiatan Belajar 3ds MaxRiyan Ibanezty
 
Bab iv . kegiatan belajar 3ds max
Bab iv . kegiatan belajar 3ds maxBab iv . kegiatan belajar 3ds max
Bab iv . kegiatan belajar 3ds maxRiyan Ibanezty
 
modul arcGIS
modul arcGISmodul arcGIS
modul arcGISdachilva
 
Autocad2dmodulaplikasi 131116195205-phpapp01
Autocad2dmodulaplikasi 131116195205-phpapp01Autocad2dmodulaplikasi 131116195205-phpapp01
Autocad2dmodulaplikasi 131116195205-phpapp01Han Han
 
Autocad 2d modul aplikasi
Autocad 2d modul aplikasiAutocad 2d modul aplikasi
Autocad 2d modul aplikasiBaharudin Saleh
 
Step by step autocad 1
Step by step autocad 1Step by step autocad 1
Step by step autocad 1Tauvick Pamit
 
Building A Simple Robot in VREP
Building A Simple Robot in VREPBuilding A Simple Robot in VREP
Building A Simple Robot in VREPLusiana Diyan
 
Membuat cincin dengan 3 ds max
Membuat cincin dengan 3 ds maxMembuat cincin dengan 3 ds max
Membuat cincin dengan 3 ds maxYulie Nezawa
 
Belajar corel draw x3
Belajar corel draw x3Belajar corel draw x3
Belajar corel draw x3almunajib
 
Bab ii . kegiatan belajar 3ds max
Bab ii . kegiatan belajar 3ds maxBab ii . kegiatan belajar 3ds max
Bab ii . kegiatan belajar 3ds maxRiyan Ibanezty
 
Geogebra untuk geometri transformasi
Geogebra untuk geometri transformasiGeogebra untuk geometri transformasi
Geogebra untuk geometri transformasiSunaryo Dk
 
Menggambar Teknik, UPB
Menggambar Teknik, UPBMenggambar Teknik, UPB
Menggambar Teknik, UPBadji21
 
MODUL_CORELDRAW.pdf
MODUL_CORELDRAW.pdfMODUL_CORELDRAW.pdf
MODUL_CORELDRAW.pdfyopi44
 
Modul coreldraw 11
Modul coreldraw 11Modul coreldraw 11
Modul coreldraw 11bangjin
 
Tutorial Blender Fundamental 'The Magic Of Blender 3D'
Tutorial Blender Fundamental 'The Magic Of Blender 3D' Tutorial Blender Fundamental 'The Magic Of Blender 3D'
Tutorial Blender Fundamental 'The Magic Of Blender 3D' Hendi Hendratman
 
Cara membuat animasi macromedia flash 8
Cara membuat animasi macromedia flash 8Cara membuat animasi macromedia flash 8
Cara membuat animasi macromedia flash 8siti hodijah
 
Coreldraw x3-module
Coreldraw x3-moduleCoreldraw x3-module
Coreldraw x3-moduleeka_budi
 

Similar to Tutorial Membuat Simple Crane Menggunakan Coppeliasim (20)

Modelling blender
Modelling blenderModelling blender
Modelling blender
 
Bab vi . kegiatan belajar 3ds max
Bab vi . kegiatan belajar 3ds maxBab vi . kegiatan belajar 3ds max
Bab vi . kegiatan belajar 3ds max
 
Bab vii. latihan dan tugas Kegiatan Belajar 3ds Max
Bab vii. latihan dan tugas Kegiatan Belajar 3ds MaxBab vii. latihan dan tugas Kegiatan Belajar 3ds Max
Bab vii. latihan dan tugas Kegiatan Belajar 3ds Max
 
Makalah Gravis dan Visualisasi
Makalah Gravis dan VisualisasiMakalah Gravis dan Visualisasi
Makalah Gravis dan Visualisasi
 
Bab iv . kegiatan belajar 3ds max
Bab iv . kegiatan belajar 3ds maxBab iv . kegiatan belajar 3ds max
Bab iv . kegiatan belajar 3ds max
 
modul arcGIS
modul arcGISmodul arcGIS
modul arcGIS
 
Autocad2dmodulaplikasi 131116195205-phpapp01
Autocad2dmodulaplikasi 131116195205-phpapp01Autocad2dmodulaplikasi 131116195205-phpapp01
Autocad2dmodulaplikasi 131116195205-phpapp01
 
Autocad 2d modul aplikasi
Autocad 2d modul aplikasiAutocad 2d modul aplikasi
Autocad 2d modul aplikasi
 
Step by step autocad 1
Step by step autocad 1Step by step autocad 1
Step by step autocad 1
 
Building A Simple Robot in VREP
Building A Simple Robot in VREPBuilding A Simple Robot in VREP
Building A Simple Robot in VREP
 
Membuat cincin dengan 3 ds max
Membuat cincin dengan 3 ds maxMembuat cincin dengan 3 ds max
Membuat cincin dengan 3 ds max
 
Belajar corel draw x3
Belajar corel draw x3Belajar corel draw x3
Belajar corel draw x3
 
Bab ii . kegiatan belajar 3ds max
Bab ii . kegiatan belajar 3ds maxBab ii . kegiatan belajar 3ds max
Bab ii . kegiatan belajar 3ds max
 
Geogebra untuk geometri transformasi
Geogebra untuk geometri transformasiGeogebra untuk geometri transformasi
Geogebra untuk geometri transformasi
 
Menggambar Teknik, UPB
Menggambar Teknik, UPBMenggambar Teknik, UPB
Menggambar Teknik, UPB
 
MODUL_CORELDRAW.pdf
MODUL_CORELDRAW.pdfMODUL_CORELDRAW.pdf
MODUL_CORELDRAW.pdf
 
Modul coreldraw 11
Modul coreldraw 11Modul coreldraw 11
Modul coreldraw 11
 
Tutorial Blender Fundamental 'The Magic Of Blender 3D'
Tutorial Blender Fundamental 'The Magic Of Blender 3D' Tutorial Blender Fundamental 'The Magic Of Blender 3D'
Tutorial Blender Fundamental 'The Magic Of Blender 3D'
 
Cara membuat animasi macromedia flash 8
Cara membuat animasi macromedia flash 8Cara membuat animasi macromedia flash 8
Cara membuat animasi macromedia flash 8
 
Coreldraw x3-module
Coreldraw x3-moduleCoreldraw x3-module
Coreldraw x3-module
 

More from Lusiana Diyan

Komunikasi Bisnis yang Efektif
Komunikasi Bisnis yang EfektifKomunikasi Bisnis yang Efektif
Komunikasi Bisnis yang EfektifLusiana Diyan
 
Berkomunikasi dalam Tim
Berkomunikasi dalam TimBerkomunikasi dalam Tim
Berkomunikasi dalam TimLusiana Diyan
 
Berkomunikasi di Dunia dengan Keragaman
Berkomunikasi di Dunia dengan KeragamanBerkomunikasi di Dunia dengan Keragaman
Berkomunikasi di Dunia dengan KeragamanLusiana Diyan
 
Menulis Pesan Bisnis
Menulis Pesan BisnisMenulis Pesan Bisnis
Menulis Pesan BisnisLusiana Diyan
 
Kemampuan Berkomunikasi 6 - Menyelesaikan Pesan Bisnis
Kemampuan Berkomunikasi 6 - Menyelesaikan Pesan BisnisKemampuan Berkomunikasi 6 - Menyelesaikan Pesan Bisnis
Kemampuan Berkomunikasi 6 - Menyelesaikan Pesan BisnisLusiana Diyan
 
Menulis Pesan Bisnis
Menulis Pesan BisnisMenulis Pesan Bisnis
Menulis Pesan BisnisLusiana Diyan
 
Vocabulary Engineering Enrichment 3
Vocabulary Engineering Enrichment 3Vocabulary Engineering Enrichment 3
Vocabulary Engineering Enrichment 3Lusiana Diyan
 
Vocabulary Engineering Enrichment 2
Vocabulary Engineering Enrichment 2Vocabulary Engineering Enrichment 2
Vocabulary Engineering Enrichment 2Lusiana Diyan
 
Vocabulary Engineering Enrichment
Vocabulary Engineering EnrichmentVocabulary Engineering Enrichment
Vocabulary Engineering EnrichmentLusiana Diyan
 
DESIGN THINGKING & PROJECT MANAGEMENT
DESIGN THINGKING & PROJECT MANAGEMENTDESIGN THINGKING & PROJECT MANAGEMENT
DESIGN THINGKING & PROJECT MANAGEMENTLusiana Diyan
 
CRUD pada Android Studio menggunakan MySQL
CRUD pada Android Studio menggunakan MySQLCRUD pada Android Studio menggunakan MySQL
CRUD pada Android Studio menggunakan MySQLLusiana Diyan
 
Kontrol LED melalui Web Server
Kontrol LED melalui Web ServerKontrol LED melalui Web Server
Kontrol LED melalui Web ServerLusiana Diyan
 
Akses GPIO pada Raspberry Pi
Akses GPIO pada Raspberry PiAkses GPIO pada Raspberry Pi
Akses GPIO pada Raspberry PiLusiana Diyan
 
Tutorial Menggunakan Software Eagle
Tutorial Menggunakan Software EagleTutorial Menggunakan Software Eagle
Tutorial Menggunakan Software EagleLusiana Diyan
 
Proses Rekayasa Perangkat Lunak
Proses Rekayasa Perangkat LunakProses Rekayasa Perangkat Lunak
Proses Rekayasa Perangkat LunakLusiana Diyan
 
Produk Rekasaya Perangkat Lunak
Produk Rekasaya Perangkat LunakProduk Rekasaya Perangkat Lunak
Produk Rekasaya Perangkat LunakLusiana Diyan
 
Open Loop Analog Control System - Motor DC
Open Loop Analog Control System - Motor DCOpen Loop Analog Control System - Motor DC
Open Loop Analog Control System - Motor DCLusiana Diyan
 
PUBLIC-KEY CRYPTOGRAPHY PRINCIPLES
PUBLIC-KEY CRYPTOGRAPHY PRINCIPLESPUBLIC-KEY CRYPTOGRAPHY PRINCIPLES
PUBLIC-KEY CRYPTOGRAPHY PRINCIPLESLusiana Diyan
 
Data Encryption Standard (DES)
Data Encryption Standard (DES)Data Encryption Standard (DES)
Data Encryption Standard (DES)Lusiana Diyan
 

More from Lusiana Diyan (20)

Komunikasi Bisnis yang Efektif
Komunikasi Bisnis yang EfektifKomunikasi Bisnis yang Efektif
Komunikasi Bisnis yang Efektif
 
Berkomunikasi dalam Tim
Berkomunikasi dalam TimBerkomunikasi dalam Tim
Berkomunikasi dalam Tim
 
Berkomunikasi di Dunia dengan Keragaman
Berkomunikasi di Dunia dengan KeragamanBerkomunikasi di Dunia dengan Keragaman
Berkomunikasi di Dunia dengan Keragaman
 
Menulis Pesan Bisnis
Menulis Pesan BisnisMenulis Pesan Bisnis
Menulis Pesan Bisnis
 
Kemampuan Berkomunikasi 6 - Menyelesaikan Pesan Bisnis
Kemampuan Berkomunikasi 6 - Menyelesaikan Pesan BisnisKemampuan Berkomunikasi 6 - Menyelesaikan Pesan Bisnis
Kemampuan Berkomunikasi 6 - Menyelesaikan Pesan Bisnis
 
Menulis Pesan Bisnis
Menulis Pesan BisnisMenulis Pesan Bisnis
Menulis Pesan Bisnis
 
Vocabulary Engineering Enrichment 3
Vocabulary Engineering Enrichment 3Vocabulary Engineering Enrichment 3
Vocabulary Engineering Enrichment 3
 
Vocabulary Engineering Enrichment 2
Vocabulary Engineering Enrichment 2Vocabulary Engineering Enrichment 2
Vocabulary Engineering Enrichment 2
 
Vocabulary Engineering Enrichment
Vocabulary Engineering EnrichmentVocabulary Engineering Enrichment
Vocabulary Engineering Enrichment
 
DESIGN THINGKING & PROJECT MANAGEMENT
DESIGN THINGKING & PROJECT MANAGEMENTDESIGN THINGKING & PROJECT MANAGEMENT
DESIGN THINGKING & PROJECT MANAGEMENT
 
CRUD pada Android Studio menggunakan MySQL
CRUD pada Android Studio menggunakan MySQLCRUD pada Android Studio menggunakan MySQL
CRUD pada Android Studio menggunakan MySQL
 
Kontrol LED melalui Web Server
Kontrol LED melalui Web ServerKontrol LED melalui Web Server
Kontrol LED melalui Web Server
 
Installasi NodeMCU
Installasi NodeMCUInstallasi NodeMCU
Installasi NodeMCU
 
Akses GPIO pada Raspberry Pi
Akses GPIO pada Raspberry PiAkses GPIO pada Raspberry Pi
Akses GPIO pada Raspberry Pi
 
Tutorial Menggunakan Software Eagle
Tutorial Menggunakan Software EagleTutorial Menggunakan Software Eagle
Tutorial Menggunakan Software Eagle
 
Proses Rekayasa Perangkat Lunak
Proses Rekayasa Perangkat LunakProses Rekayasa Perangkat Lunak
Proses Rekayasa Perangkat Lunak
 
Produk Rekasaya Perangkat Lunak
Produk Rekasaya Perangkat LunakProduk Rekasaya Perangkat Lunak
Produk Rekasaya Perangkat Lunak
 
Open Loop Analog Control System - Motor DC
Open Loop Analog Control System - Motor DCOpen Loop Analog Control System - Motor DC
Open Loop Analog Control System - Motor DC
 
PUBLIC-KEY CRYPTOGRAPHY PRINCIPLES
PUBLIC-KEY CRYPTOGRAPHY PRINCIPLESPUBLIC-KEY CRYPTOGRAPHY PRINCIPLES
PUBLIC-KEY CRYPTOGRAPHY PRINCIPLES
 
Data Encryption Standard (DES)
Data Encryption Standard (DES)Data Encryption Standard (DES)
Data Encryption Standard (DES)
 

Recently uploaded

Strategi Pengembangan Agribisnis di Indonesia
Strategi Pengembangan Agribisnis di IndonesiaStrategi Pengembangan Agribisnis di Indonesia
Strategi Pengembangan Agribisnis di IndonesiaRenaYunita2
 
001. Ringkasan Lampiran Juknis DAK 2024_PAUD.pptx
001. Ringkasan Lampiran Juknis DAK 2024_PAUD.pptx001. Ringkasan Lampiran Juknis DAK 2024_PAUD.pptx
001. Ringkasan Lampiran Juknis DAK 2024_PAUD.pptxMuhararAhmad
 
Pembangkit Listrik Tenaga Nuklir Kelompok 1.pptx
Pembangkit Listrik Tenaga Nuklir Kelompok 1.pptxPembangkit Listrik Tenaga Nuklir Kelompok 1.pptx
Pembangkit Listrik Tenaga Nuklir Kelompok 1.pptxmuhammadrizky331164
 
Slide Transformasi dan Load Data Menggunakan Talend Open Studio
Slide Transformasi dan Load Data Menggunakan Talend Open StudioSlide Transformasi dan Load Data Menggunakan Talend Open Studio
Slide Transformasi dan Load Data Menggunakan Talend Open Studiossuser52d6bf
 
05 Sistem Perencanaan Pembangunan Nasional.ppt
05 Sistem Perencanaan Pembangunan Nasional.ppt05 Sistem Perencanaan Pembangunan Nasional.ppt
05 Sistem Perencanaan Pembangunan Nasional.pptSonyGobang1
 
2021 - 10 - 03 PAPARAN PENDAHULUAN LEGGER JALAN.pptx
2021 - 10 - 03 PAPARAN PENDAHULUAN LEGGER JALAN.pptx2021 - 10 - 03 PAPARAN PENDAHULUAN LEGGER JALAN.pptx
2021 - 10 - 03 PAPARAN PENDAHULUAN LEGGER JALAN.pptxAnnisaNurHasanah27
 

Recently uploaded (6)

Strategi Pengembangan Agribisnis di Indonesia
Strategi Pengembangan Agribisnis di IndonesiaStrategi Pengembangan Agribisnis di Indonesia
Strategi Pengembangan Agribisnis di Indonesia
 
001. Ringkasan Lampiran Juknis DAK 2024_PAUD.pptx
001. Ringkasan Lampiran Juknis DAK 2024_PAUD.pptx001. Ringkasan Lampiran Juknis DAK 2024_PAUD.pptx
001. Ringkasan Lampiran Juknis DAK 2024_PAUD.pptx
 
Pembangkit Listrik Tenaga Nuklir Kelompok 1.pptx
Pembangkit Listrik Tenaga Nuklir Kelompok 1.pptxPembangkit Listrik Tenaga Nuklir Kelompok 1.pptx
Pembangkit Listrik Tenaga Nuklir Kelompok 1.pptx
 
Slide Transformasi dan Load Data Menggunakan Talend Open Studio
Slide Transformasi dan Load Data Menggunakan Talend Open StudioSlide Transformasi dan Load Data Menggunakan Talend Open Studio
Slide Transformasi dan Load Data Menggunakan Talend Open Studio
 
05 Sistem Perencanaan Pembangunan Nasional.ppt
05 Sistem Perencanaan Pembangunan Nasional.ppt05 Sistem Perencanaan Pembangunan Nasional.ppt
05 Sistem Perencanaan Pembangunan Nasional.ppt
 
2021 - 10 - 03 PAPARAN PENDAHULUAN LEGGER JALAN.pptx
2021 - 10 - 03 PAPARAN PENDAHULUAN LEGGER JALAN.pptx2021 - 10 - 03 PAPARAN PENDAHULUAN LEGGER JALAN.pptx
2021 - 10 - 03 PAPARAN PENDAHULUAN LEGGER JALAN.pptx
 

Tutorial Membuat Simple Crane Menggunakan Coppeliasim

  • 1. PRAKTIKUM ALAT PENGEMBANGAN PERANGKAT LUNAK TUTORIAL MEMBUAT CRANE SEDERHANA MENGGUNAKAN COPPELIASIM LUSIANA DIYAN NINGRUM (2210181051) 2 D4 TEKNIK KOMPUTER B POLITEKNIK ELEKTRONIKA NEGERI SURABAYA SURABAYA 2020
  • 2. TUTORIAL MEMBUAT CRANE SEDERHANA MENGGUNAKAN COPPELIASIM A. Peralatan dan Bahan 1. PC/Laptop yang sudah terinstall software Simulator VREP/CoppeliaSim B. Percobaan 1. Buka Software CoppeliaSim 2. Sebelum mulai membuat simulasi, Anda bisa mengatur ukuran dari lantai pada area kerja dengan cara klik RezisableFlor, dan nanti akan muncul dialog box untuk memasukkan ukuran yang diperlukan 3. Buat body Crane berbentuk kubus dengan cara klkik kanan pada area kerja. Add > Primitive shape > Cuboid.
  • 3. 4. Masukkan ukuran cuboid untuk X-coord = 1.2; Y-coord = 1.2; Z-coord = 0.3 > Tekan OK 5. Ganti nama Cuboid menjadi Base, dengan cara double klik untuk rename, setelah selesai tekan Enter. 6. Sorot Base.Pilih Object/Item Translation/Porsition. Isikan pada tab position X-coord = -2 Lalu close. 7. Beri warna pada Base dengan cara. Double Klik icon kubus pada nama Base. Maka akan muncul dialog box seperti berikut
  • 4. Pilih Adjust Color > Ambient/diffuse component. Ubah Saturation =0 dan Luminosity =0.36. Maka Base akan berubah warna sebagai berikut 8. Buat tiang Crane dengan cara yang sama seperti membuat Base. Bedanya ukuran pada X-coord = 0.4, Y-coord = 0.4, dan Z-coord = 7.7
  • 5. 9. Sorot Base.Pilih Object/Item Translation/Porsition. Isikan pada tab position X-coord = -2 Lalu close. Maka Base akan tampak seperti berikut. 10. Ubah nama Cuboid menjadi Tower
  • 6. 11. Untuk menambahkan warna pada Tower. Dengan cara Double klik pada icon kubus. Lalu akan muncul dialog box seperti berikut 12. Lakukan langkah yang sama seperti nomor 3. Masukkan ukuran X-coord = 11, Y-coord = 0.3, dan Z-coord = 0.3 13. Ubah nama Cuboid menjadi Arm hasil perubahan > 14. Untuk mengubah posisi Arm, sorot nama Arm kemudian pilih Object/Item Translation/Position > Mouse Translation > Check along x dan along z. Drag Arm menuju ke posisi yang sesuai, seperti berikut kemudian close dialog box Object/Item Translation/Position
  • 7. 15. Untuk menambahkan warna pada Arm. Dilakukan dengan cara. Double klik icon kubus pada Arm maka akan mucul dialog box seperti berikut. Pilih adjust Color > Ambient/diffuse component > Atur Blue = 0. Maka tampilan Arm akan seperti gambar di bawah ini
  • 8. 16. Lakukan langkah yang sama seperti no 3 untuk menambahkan beban. Ubah ukuran Cuboid menjadi x=0.4m; y=0.4m; z=0.6m. 17. Ganti nama Cuboid menjadi CounterWeight hasil perubahan > 18. Sorot CounterWeight. Pilih Object/Item Translation/Position > Mouse Translation. Check along x dan along z.
  • 9. Drag CounterWeight menuju ke posisi yang diperlukan, jika sudah sesuai lalu tekan close 19. Untuk memberi warna pada CounterWeight, lakukan Double klik icon kubus pada CounterWeight maka akan mucul dialog box seperti berikut. Pilih adjust Color->Ambient/diffuse component. Atur nilai RGB dan HSL untuk mendapatkan warna yang anda inginkan. maka akan seperti berikut
  • 10. Warna yang dihasilkan pada CounterWeight 20. Lakukan langkah yang sama dengan nomor 3 untuk membuat Crab. Masukkan ukuran X-coord = 0.55; Y-coord = 0.35; Z-coord = 0.35. 21. Ganti nama Cuboid menjadi Crab hasil perubahan > 22. Sorot Crab. Pilih Object/Item Translation/Mouse Translation. Check along z.
  • 11. Drag Crab menuju ke titik yang dikehendaki kemudian tekan close 23. Untuk memberi warna pada Crab. Dilakukan dengan cara. Double klik icon kubus pada Crab maka akan mucul dialog box seperti berikut. Pilih adjust Color->Ambient/diffuse component. Atur nilai RGB dan HSL untuk mendapatkan warna yang anda inginkan. maka akan seperti berikut Warna yang dihasilkan pada Crab 24. Klik Kanan pada area kerja. Pilih Add > Primitive Shape > Cylinder
  • 12. 25. Masukkan ukuran cylinder. Pada X-coord = 0.1 dan Z-coord = 0.1 26. Ganti nama Cylinder menjadi UpperGuide perubahan yang dihasilkan > 27. Sorot UpperGuide. Pilih Object/Item Translation/Position > Mouse Translation > Check along z.
  • 13. Lalu drag UpperGuide sesuai dengan posisi yang dikehendaki 28. Klik kanan pada area kerja. Pilih Add > Primitive Shape > Cylinder 29. Masukkan ukuran untuk cylinder. X-coord = 0.6 dan Z-coord = 0.6 30. Ganti nama Cylinder0 menjadi Mess hasil perubahan > 31. Sorot Mess. Pilih Object/Item Translation/Mouse Translation. Check along y dan along z.
  • 14. Lalu drag Mess menuju posisi yang dikehendaki, kemudian tekan close 32. Untuk memberi warna pada Mess, lakukan Double klik icon kubus pada Mess maka akan mucul dialog box seperti berikut.
  • 15. Pilih adjust Color > Ambient/diffuse component. Atur nilai RGB dan HSL untuk mendapatkan warna yang anda inginkan. maka akan seperti berikut Perubahan warna yang dihasilkan : 33. Kelompokkan bagian – bagian penyusun Crane hasil pengelompokan > 34. Untuk membuat Base menjadi non dinamic. Digunakan langkah seperti berikut. Double klik icon kubus. Pilih show Dinamic Property Dialog. Maka akan muncul seperti berikut.
  • 16. Un-check pada checkbox “Body is dynamic” 35. Untuk membuat Tower menjadi non dinamic. Digunakan langkah seperti berikut. Double klik icon kubus. Pilih show Dinamic Property Dialog. Maka akan muncul seperti berikut.
  • 17. Un-check pada checkbox “Body is dynamic” 36. Berikutnya kita menghubungkan Tower dengan Arm, dengan cara klik kanan pada area kerja > add > Joint > Revolute
  • 18. 37. Ganti nama Revolute_joint menjadi Arm_actuator hasil perubahan nama > 38. Sorot nama Arm_actuator, kemudian klik icon scene properties dan ubah lenght =0.3, dan Diameter=0.6 39. Pindah posisi dari objek tersebut dengan cara Pilih Object/Item Translation/Position > Mouse Translation. Check along x dan along z. Drag objek menuju posisi yang dikehendaki
  • 19. 40. Sorot Revolute_joint dan Tower. Pilih Object/Item Translation/Position. Klik Apply to Selection. 41. Sorot Revolute_joint. Pilih Object/Item Translation/Mouse Translation. Check along Z. Drag Revolute_joint ke posisi yang dikehendaki 42. Drag arm_actuator ke dalam Tower kemudian letakkan Arm pada Arm_actuator seperti pada gambar di bawah ini hasil pengelompokan >
  • 20. 43. Double klik icon sehingga akan mucul dialog box. Klik Show Dinamic Property Dialog. Check Motor Enable. Atur Target= 10, Maksimum = 5e3. 44. Tambahkan force sensor dengan cara klik kanan pada area kerja > Add > Force Sensor 45. Sorot Force_sensor. Klik icon Object/Item Translation/Position > Mouse Translation > centang checkbox along X dan along Z. Kemudian letakkan sensor tepat dibawah CounterWeight
  • 21. 46. Lakukan pengelompokan dengan cara drag Force_sensor ke dalam Arm. Sehingga susunannya menjadi seperti gambar di bawah ini. > > 47. Tambahkan Object baru kembali, yaitu Primastic joint, dengan cara Klik kanan pada area kerja > Add > Joint > Prismatic 48. Sorot Prismatic_joint. Pilih Object item shift/ Mouse Translation. Check alng x dan z. Sejajarkan pada Crab. 49. Double Klik icon . Atur Length = 0.3 dan Diameters= 0.05
  • 22. 50. Klik Show Dynamic Property. Check Motor Enable. Atur Target =1 dan Maksimum = 1e3. Check Lock Motor When. 51. Sorot Prismatic_Joint. Pilih Object Rotate/Rotation. Check Own Frame. Atur Y=90. hasil >
  • 23. 52. Ubah nama Prismatic_joint menjadi Crab_actuator hasil rename > 53. Drag Crab_actuator ke dalam Arm, kemudian drag Crab ke dalam Crab actuator hasil pengelompokan > 54. Sorot Crab kemudian klik icon Scene Object Properties > Show dynamic properties dialog > centang “Motor Enable” dan “Lock motor…” > masukkan nilai target velocity = 1 dan Maximum force = 1e3 55. Ubah susunan object menjadi seperti di bawah ini hasilnya menjadi >
  • 24. 56. Sorot Crab kemudian pilih icon Object/Item Translation/Position > centang along X kemudian drag posisi Crab sesuai dengan yang dibutuhkan 57. Sorot Crab. Klik icon Scene Object Properties. Isikan nilai Pos range = 6.5 58. Atur ulang susunan object menjadi seperti pada gambar di bawah ini
  • 25. 59. Tambahkan object baru yakni Prismatic dengan cara klik kanan pada area kerja > Add > Joint > Prismatic 60. Ganti nama Prismatic_joint menjadi Hoist_actuator hasil penamaan > 61. Double klik icon . Atur Pos.min=-5.3 , Position=-5.3 dan Pos. Range= 5.3. atur lenght=0.5 , Diameter=0.05
  • 26. 62. Sorot Hoist_actuator. Klik Object/Item Translation/Position > Mouse Translation. Check along x dan along z. Drag Hoist_actuator ke posisi yang dikehendaki 63. Sorot Hoist_actuator. Klik Object/Item Translation/Position > Mouse Translation. Check along x dan along z dan drag object menuju posisi yang dikehendaki kemudian klik close 64. Lakukan pengelompokan object kembali sehingga susunan object menjadi seperti gambar di bawah ini
  • 27. 65. Tambahkan object baru yakni spherical dengan cara klik kanan pada area kerja > Add > joint > spherical 66. Sorot Spherical. Klik Object Position/Mouse Translation. Check along x dan along z. Drag object ke posisi seperti pada gambar berikut
  • 28. 67. Satukan object dengan cara tekan Shift + sorot Spherical_joint, Crab, Hoist_actuator kemudian tekan Object/Item Translation/Position > Klik Apply X to sel. dan Klik Apply Y to sel. > close 68. Susun kembali pengelompokan object sehingga terbentuk seperti pada gambar di bawah ini 69. Edit dynamic properties dari Hoist akuator, menjadi seperti berikut, isi Maximum force = 6e3
  • 29. 70. Selanjutnya kita akan membuat GUI pada Crane. Dilakukan dengan cara Double klik script pada Rezible_floor. Maka akan mncul kedua window untuk menuliskan script Tuliskan script di bawah ini function sysCall_init() model=sim.getObjectAssociatedWithScript(sim.handle_self) e1=sim.getObjectHandle('ResizableFloor_5_25_element') e2=sim.getObjectHandle('ResizableFloor_5_25_visibleElement') end function sysCall_cleanup() hideDlg() end function sysCall_nonSimulation() local s=sim.getObjectSelection() if s and #s>=1 and s[1]==model then showDlg() else hideDlg() end end function sysCall_beforeSimulation()
  • 30. hideDlg() end function sysCall_beforeSimulation() hideDlg() end function updateFloor() local c=readInfo() local sx=c['sizes'][1]/5 local sy=c['sizes'][2]/5 local sizeFact=sim.getObjectSizeFactor(model) sim.setObjectParent(e1,-1,true) local child=sim.getObjectChild(model,0) while child~=-1 do sim.removeObject(child) child=sim.getObjectChild(model,0) end local xPosInit=(sx-1)*-2.5*sizeFact local yPosInit=(sy-1)*-2.5*sizeFact local f1,f2 for x=1,sx,1 do for y=1,sy,1 do if (x==1)and(y==1) then sim.setObjectParent(e1,model,true) f1=e1 else f1=sim.copyPasteObjects({e1},0)[1] f2=sim.copyPasteObjects({e2},0)[1] sim.setObjectParent(f1,model,true) sim.setObjectParent(f2,f1,true) end local p=sim.getObjectPosition(f1,sim.handle_parent) p[1]=xPosInit+(x-1)*5*sizeFact p[2]=yPosInit+(y-1)*5*sizeFact sim.setObjectPosition(f1,sim.handle_parent,p) end end end function getDefaultInfoForNonExistingFields(info) if not info['version'] then info['version']=0 end if not info['sizes'] then info['sizes']={1,1} end end function readInfo() local data=sim.readCustomDataBlock(model,'XYZ_FLOOR_INFO') if data then data=sim.unpackTable(data) else
  • 31. data={} end getDefaultInfoForNonExistingFields(data) return data end function writeInfo(data) if data then sim.writeCustomDataBlock(model,'XYZ_FLOOR_INFO',sim.packTable(data)) else sim.writeCustomDataBlock(model,'XYZ_FLOOR_INFO','') end end function updateUi() local c=readInfo() local sizeFact=sim.getObjectSizeFactor(model) simUI.setLabelText(ui,1,'X-size (m): '..string.format("%.2f",c['sizes'][1]*sizeFact),true) simUI.setSliderValue(ui,2,c['sizes'][1]/5,true) simUI.setLabelText(ui,3,'Y-size (m): '..string.format("%.2f",c['sizes'][2]*sizeFact),true) simUI.setSliderValue(ui,4,c['sizes'][2]/5,true) end function sliderXChange(ui,id,newVal) local c=readInfo() c['sizes'][1]=newVal*5 writeInfo(c) updateUi() updateFloor() end function sliderYChange(ui,id,newVal) local c=readInfo() c['sizes'][2]=newVal*5 writeInfo(c) updateUi() updateFloor() end function closeEventHandler(h) sim.removeScript(sim.handle_self) end function showDlg() if not ui then xml = [[ <ui title="Speed Control" closeable="true" resizable="false" activate="false"> <group layout="form" flat="true"> <label text="X-size (m): 1" id="1"/> <hslider tick-position="above" tick-interval="1" minimum="1" maximum="5" on-change="sliderXChange" id="2"/> <label text="Y-size (m): 1" id="3"/>
  • 32. <hslider tick-position="above" tick-interval="1" minimum="1" maximum="5" on-change="sliderYChange" id="4"/> </group> <label text="" style="* {margin-left: 400px;}"/> </ui> ]] ui=simUI.create(xml) if 2==sim.getInt32Parameter(sim.intparam_platform) then -- To fix a Qt bug on Linux sim.auxFunc('activateMainWindow') end updateUi() end end function hideDlg() if ui then simUI.destroy(ui) ui=nil end end 71. Tambahkan GUI pada Base dengan cara klik kanan pada Base. Pilih add=>associated child script=>non Thearts. Maka akan muncul icon script seperti berikut. 72. Double klik pada icon script di samping Base yang akan menampilkan halaman untuk menuliskan script
  • 33. Tuliskan script di bawah ini : function sysCall_init() arm=sim.getObjectHandle('Arm_Actuator') crab=sim.getObjectHandle('Crab_Aktuator') hoist=sim.getObjectHandle('Hoist_aktuator') suction=sim.getScriptHandle('suctionPad') xml = [[ <ui title="Speed Control" closeable="true" resizable="false" activate="false"> <group layout="form" flat="true"> <label text="Arm speed (rad/s): 0.00" id="1"/> <hslider tick-position="above" tick-interval="1" minimum="-10" maximum="10" on-change="actuateArm" id="2"/> <label text="Crab speed (m/s): 0.00" id="3"/> <hslider tick-position="above" tick-interval="1" minimum="-10" maximum="10" on-change="actuateCrab" id="4"/> <label text="Hoist speed (m/s): 0.00" id="5"/> <hslider tick-position="above" tick-interval="1" minimum="-10" maximum="10" on-change="actuateHoist" id="6"/> <label text="Magnet" id="7"/> <button text="deactivated" on-click="actuateMagnet" checkable="true" id="8"/> </group> <label text="" style="* {margin-left: 400px;}"/> </ui> ]] ui=simUI.create(xml) end function actuateArm(ui,id,newVal) local val = 0.02*newVal
  • 34. sim.setJointTargetVelocity(arm,val) simUI.setLabelText(ui,1,string.format("Arm speed (rad/s): %.2f",val)) end function actuateCrab(ui,id,newVal) local val = 0.15*newVal sim.setJointTargetVelocity(crab,val) simUI.setLabelText(ui,3,string.format("Crab speed (m/s): %.2f",val)) end function actuateHoist(ui,id,newVal) local val = 0.25*newVal sim.setJointTargetVelocity(hoist,val) simUI.setLabelText(ui,5,string.format("Hoist speed (m/s): %.2f",val)) end function actuateMagnet(ui) local state = sim.getScriptSimulationParameter(suction,'active') if state then sim.setScriptSimulationParameter(suction,'active','false') simUI.setButtonText(ui,8,"deactivated") else sim.setScriptSimulationParameter(suction,'active','true') simUI.setButtonText(ui,8,"activated") end end 73. Tambahkan Magnet pada area kerja. Klik model Browser. Component=>Grippers=>Suction pad. Maka akan muncul gambar seperti berikut. Pada dialog box information klik OK > klik icon 74. Klik kanan pada area kerja. Pilih add > Primitive Shape >Cylinder. Biarkan ukuran pada setting default nya. Lalu OK.
  • 35. Kemudian akan tampil gambar cylinder seperti berikut 75. Sorot Cylinder > Klik Object/Item Translation/Position > Centang along Z > drag cylinder pada posisi yang dikehendaki 76. Tambahkan object baru yakni force sensor dengan cara Klik kanan pda area kerja > Add > Force Sensor
  • 36. Kemudian akan tampil gambar seperti berikut 77. Sorot Force sensor > Klik Object/Item Translation/Position > Centang along Z > drag force sensor pada posisi yang dikehendaki 78. Sorot Force Sensor dengan suction Pad. Pilih Object Item Translation/Position > Position > Apply X to sel. Maka akan tampak seperti berikut. 79. Lakukan pengelompokan object seperti berikut
  • 37. 80. Double klik Hoist aktuator. Ubah Pos.Range=6 dan Pos. Min =6. 81. Lakukan kembali pengelompokan pada object 82. Sorot Cylinder dan Hoist aktuator. Pilih Object Time shift/Position/ Apply X to sel dan Apply Y to sel. Maka akan tampak seperti berikut.
  • 38. 83. Sorot Cylinder. Pilih Object Time Shift/ Mouse Position. Check along z. Atur pada posisi berikut. 84. Double klik icon pada suction pad. Ganti kondisi “active” dari True menjadi False > klik Close Hasil perubahan value :