2021-協同產品設計實習-stage3-bg6

  • Home
    • Site Map
    • reveal
    • blog
  • About
  • 機械手臂
    • 繪圖成果
    • 計算角度
  • 程式模擬
    • W10
    • W11
  • CoppliaSim程式模擬
    • CoppeliaSim 教學
      • 軸的旋轉教學
      • 直線運動教學
      • 1-單軸直線運動
      • 2-可變速之旋轉運動
      • 3-遙控攝影小汽車
      • CODE 指令解說
      • remoteApi python 指令對照
      • 機械手臂設定範例
      • 按鍵控制代碼
    • 架設場景
      • 對軸進行旋轉控制
      • 對方快進行XYZ軸控制
      • 物件螺旋運動
      • 3D列印機_控制噴嘴
      • 3D列印機_自動繪製
      • 3D列印機_控制高度
      • 衝擊試驗機
      • 架設機械手臂場景
      • 機械手臂場景微調
      • 機械手臂場景路徑控制
    • W13 Pick and Place
      • remoteApi
      • 0526更新
      • 舊版本
    • 尋找控制代碼
    • 控制解說
    • 0513 機械手臂新增夾爪控制
    • 0511 Programming in C++
    • 參考資料
    • 舊資料
      • 0511 Programming in Lua on multiple program
      • 0511 Programming in Lua in One program
  • task2-remoteAPI
    • 機械手臂多人對戰
    • 自動吹笛子機
    • 3D列印機
    • W13 Pick and Place remoteApi
      • 0601
      • 0524
    • remoteAPI in C++
      • 0511
      • 0512
      • 0512-2
    • remoteAPI in python
      • 0513-1
      • 0517
    • remoteApi in Lua
      • 0513-2
  • stage3
    • task
      • task1
    • 每週進度影片
      • 第九週
      • 第十週
      • 第十一週
      • 第十二週
      • 第十三週
    • 討論
      • discord
      • 第一次討論
      • 第二次討論
      • 第三次討論
      • 第四次討論
      • 第五次討論
    • 遇到的問題
      • 更新出錯
      • 倉儲帳號被鎖
    • 小組直播影片
      • 第11週
      • 第12週
      • 第13週
  • W15
    • 影片字幕整理
3D列印機_控制噴嘴 << Previous Next >> 3D列印機_控制高度

3D列印機_自動繪製

自動繪製正方體

3D print AutoControl cube.ttt

自動繪製圓柱體

3D print AutoControl circle.ttt

自動繪製心臟線

3D print AutoControl Cardioid.ttt

參考影片

程式參考:

1.正方體

find_Position=function()
XYZ={xp, yp, zz, step}
end
function sysCall_threadmain()
    joint01=sim.getObjectHandle('X')
    joint02=sim.getObjectHandle('Y')
    joint03=sim.getObjectHandle('Z')
    grap=sim.getObjectHandle('Graph')
    set=0
    set1=0
    set2=0
    s=0.01
    step=1
    xp=0
    yp=0
    zz=0
    xstep=0
    ystep=0
    zstep=0
    cubesize=10
    t=1
    
    
    while zstep<=cubesize do
        while step<cubesize do --go++
            while xstep<=step do
                xp=xp+s
                sim.setJointTargetPosition(joint01,xp)
                find_Position()
                print(XYZ)
                xstep=xstep+1
                sim.wait(t)
            end
            while ystep<=step do
                yp=yp+s
                sim.setJointTargetPosition(joint02,yp)
                find_Position()
                print(XYZ)
                ystep=ystep+1
                sim.wait(t)
            end
            --step=step+1
            xstep=0
            ystep=0    
            while xstep<=step do
                xp=xp-s
                sim.setJointTargetPosition(joint01,xp)
                find_Position()
                print(XYZ)
                xstep=xstep+1
                sim.wait(t)
            end
            while ystep<=step do --go--
                yp=yp-s
                sim.setJointTargetPosition(joint02,yp)
                find_Position()
                print(XYZ)
                ystep=ystep+1
                sim.wait(t)
            end
            if step < (cubesize-1) then
                xp=xp-0.5*s
                yp=yp-0.5*s
                sim.setJointTargetPosition(joint01,xp)
                sim.setJointTargetPosition(joint02,yp)
                find_Position()
                print(XYZ)
            end
            step=step+1
            sim.wait(t)
            xstep=0
            ystep=0
        end
        step=1
        zz=zz+s
        sim.setJointTargetPosition(joint03,zz)
        find_Position()
        print(XYZ)
        zstep=zstep+1
        sim.wait(t)
        xp=0
        yp=0
        sim.setJointTargetPosition(joint01,xp)
        sim.setJointTargetPosition(joint02,yp)
        find_Position()
        print(XYZ)
        sim.wait(t)
    end
    
end

function sysCall_cleanup()
      
    
end

-- See the user manual or the available code snippets for additional callback functions and details

2. 圓柱體

function sysCall_threadmain()
    joint01=sim.getObjectHandle('X')
    joint02=sim.getObjectHandle('Y')
    joint03=sim.getObjectHandle('Z')
    grap=sim.getObjectHandle('Graph')
    set=0
    set1=0
    set2=0
    s=0.01
    step=1
    r=0.005
    rset=0.01
    zz=0
    zstep=1
    dz=0.01
    rstep=1
    cubesize=10
    t=0.01
    angle=0
    angleset=2
    
end

function sysCall_cleanup()
    while zstep<=20 do
        while rstep<=5 do
            while angle~=360 do
                angle=angle+angleset
                sim.setJointTargetPosition(joint01,r*(math.sin(angle*math.pi/180)))
                sim.setJointTargetPosition(joint02,r*(math.cos(angle*math.pi/180)))
                sim.wait(t)
            end
        rstep=rstep+1
        angle=0
        r=r+rset
        print(rstep)
        end
    zz=zz+dz
    zstep=zstep+1
    sim.setJointTargetPosition(joint03,zz)
    sim.setJointTargetPosition(joint01,0)
    sim.setJointTargetPosition(joint02,0)
    rstep=1
    r=0.005
    end
    
end

-- See the user manual or the available code snippets for additional callback functions and details

3. 心臟線

function sysCall_threadmain()
    joint01=sim.getObjectHandle('X')
    joint02=sim.getObjectHandle('Y')
    joint03=sim.getObjectHandle('Z')
    grap=sim.getObjectHandle('Graph')
    set=0
    set1=0
    set2=0
    s=0.01
    step=1
    r=0.005
    rset=0.001
    zz=0
    zstep=1
    dz=0.001
    rstep=1
    cubesize=10
    t=0.5
    angle=0
    angleset=2
    
end

function sysCall_cleanup()
    while zstep<=30 do
        while rstep<=30 do
            while angle~=360 do
                angle=angle+angleset
                sim.setJointTargetPosition(joint01,2*r*((math.cos(angle*math.pi/180))-0.5*(math.cos(2*angle*math.pi/180))))
                sim.setJointTargetPosition(joint02,2*r*((math.sin(angle*math.pi/180))-0.5*(math.sin(2*angle*math.pi/180))))
                sim.wait(t)
            end
        rstep=rstep+1
        angle=0
        r=r+rset
        print(rstep)
        end
    zz=zz+dz
    zstep=zstep+1
    sim.setJointTargetPosition(joint03,zz)
    sim.setJointTargetPosition(joint01,0)
    sim.setJointTargetPosition(joint02,0)
    rstep=1
    r=0.005
    end
    
end


3D列印機_控制噴嘴 << Previous Next >> 3D列印機_控制高度

Copyright © All rights reserved | This template is made with by Colorlib