[snap] grip 规律曲线-弹簧

[复制链接]
梅雷工具箱发表于 2015-6-25 10:31:35 | 显示全部楼层 |阅读模式
规律曲线-弹簧

number/d,dz,n,nr,wr,dir,h,t
entity/ps1(5001),th,obj

nr=11
wr=19
h=120
n=10
dir=1


l10:
param/'梅雷提示!请输入弹簧参数...',$
      '弹簧 内径:',nr,$
      '弹簧 外径:',wr,$
      '弹簧 高度:',h,$
      '弹簧 圈数:',n,$
      '旋向(1右旋/<>1左旋):',dir,resp
jump/l10:,end:,,resp

nr=absf(nr)
wr=absf(wr)
n=absf(n)
nnn=n*25
n=n*2
h=absf(h)-(wr-nr)/cosf(5)/2  $$弹簧高度只能是近似值

dz=(wr+nr)/4     $$ 簧圈半径
d=(wr-nr)/2      $$ 簧丝半径


if/wr<nr or wr==nr,jump/err1:
if/n<1,jump/err2:
if/n>200,jump/err3:
if/dir<>1,dir=-1


l20:
     choose/'梅雷提示!请选择弹簧颜色...',$
            '红 弹簧',$
            '黄 弹簧',$
            '蓝 弹簧',resp
     jump/l10:,end:,,,co1:,co2:,co3:,resp

co1:
coj=1
jump/l30:

co2:
coj=2
jump/l30:

co3:
coj=3

l30:
      gpos/'梅雷提示!请选择点位...',xx1,yx1,zx1,resp
      jump/l20:,end:,,,resp

$$ 创建点
i=0
str1:
i=i+1
t=(i-1)/nnn
xt=cosf(dir*t*n*180)*dz+xx1                                          
yt=sinf(dir*t*n*180)*dz+yx1                                          
zt=h*t+zx1  
ps1(i)=point/xt,yt,zt
if/t<1,jump/str1:

th=spline/ps1(1..i)     $$ 创建样条
obj=soltub/th,diamtr,d  $$ 创建管道


trm:
delete/ps1                    $$ 删除对象
if/coj==1,&color(obj)=&red       $$ 红色
if/coj==2,&color(obj)=6       $$ 黄色
if/coj==3,&color(obj)=&blue   $$ 蓝色
&layer(th)=256                $$ 把对象移到第256层
layer/inact,256               $$ 第256层 不可见也不可选择

jump/l30:

end:
halt

err1:
messg/'梅雷提示!【弹簧外径 必须大于 内径】请重新输入参数...'
jump/l10:
err2:
messg/'梅雷提示!【弹簧 圈数不得小于1】请重新输入参数...'
jump/l10:
err3:
messg/'梅雷提示!【弹簧 圈数不得大于200】请重新输入参数...'
jump/l10:
_____________________________________________________________________________ _

中磊UG二次开发教程 梅雷著 qq1821117007
学UG就上UG网 http://www.9sug.com/
就上UG网淘宝直营店
您需要登录后才可以回帖 登录 | 注册UG网 用百度帐号登录

本版积分规则