import math #导入数学模块,因为会使用π

def x_comp(k,r,t): #定义x坐标的计算函数

return r * (k -1) * math.cos(t) + r * math.cos( (k - 1) *
t)

def y_comp(k,r,t): #定义y坐标的计算函数

return r * (k -1) * math.sin(t) - r * math.sin( (k - 1) *
t)

def z_comp(k,r,t): #定义z坐标的计算函数

return 0

k = 4  #一共由四条线组成

r = IN(1)  #半径

i = math.pi*2.0 / k / 10.0 #在各条线上取十个点,计算每个点的角度位置

def GenerateHypocycloidSegment(t,n, i):
#定义内摆线的生成函数

ptList = List[Point]() #定义一个点的列表

while t <= n: #循环每条线

ptList.Add(Point.Create(x_comp(k,r,t), y_comp(k,r,t),
z_comp(k,r,t))) #将点放入点的列表当中

t =
t + i #

#生成非均匀有理B样条曲线穿过所有的点

#第一个参数False表示曲线不具有周期性

#第二个参数表示曲线穿过的点

#第三个参数表示曲线的容差

ncurve = NurbsCurve.CreateThroughPoints(False, ptList,
0.0001)

#CurveSegment表示曲线段,用上面的曲线创建曲线段

curveSegment = CurveSegment.Create(ncurve)

#设计曲线两个参数

#第一个参数需要得到曲线的父类

#第二个参数表示需要设计的曲线

designCurve = DesignCurve.Create(GetPart(),
curveSegment)

index = 0 #曲线的索引

segment = math.pi*2.0 / k #每条曲线的角度

while index < k: #循环索引生成各条曲线

GenerateHypocycloidSegment(index*segment, (index+1)*segment, i)
#生成曲线

index = index + 1

spaceclaim脚本(内摆线)的更多相关文章

  1. SpaceClaim脚本功能(Beta功能)

    本操作仅适用ANSYS SpaceClaim 2016 打开SpaceClaim脚本编辑器的方法有两种 方法一(看截图操作):         方法二(请见后面的实例操作). 创建球体源代码: #定义 ...

  2. 常用spaceclaim脚本(三)

    拉伸曲线 ptList=List[Point]() #定义一个点的列表 ptList.Add(Point.Create(MM(11),MM(-14),MM(0))) #创建点,并放入列表当中 ptLi ...

  3. 常用spaceclaim脚本(二)

    #创建一个草图 #第一个参数传入一个Frame对象 #通过一个点和两个向量创建Frame #Frame的类成员函数Create被重载 #重载函数1:Frame.Create(Point, Direct ...

  4. 常用spaceclaim脚本

    #创建一个长方体,通过两点来确定一个立方体 #MM表示的是以毫米作为单位 #返回的是一个BlockBody的对象 #本函数还有第三个参数可选,分别代表增加材料,切除材料等等 #默认值为增加材料 注:第 ...

  5. spaceclaim脚本(线生成面体)

    #新建一个列表,用来保存修剪曲线(PS:修建曲线的意思是开始点和结束点不在一起,圆就不属于修建曲线) #注意和Line,Circle类型等的区别 curves = List[ITrimmedCurve ...

  6. SpaceClaim通过脚本创建新窗口

    下载安装SharpDevelop,下载地址:http://www.icsharpcode.net/OpenSource/SD/Download/Default.aspx#SharpDevelop3x ...

  7. Apache执行Python脚本

    由于经常需要到服务器上执行些命令,有些命令懒得敲,就准备写点脚本直接浏览器调用就好了,比如这样: 因为线上有现成的Apache,就直接放它里面了,当然访问安全要设置,我似乎别的随笔里写了安全问题,这里 ...

  8. SQL Server镜像自动生成脚本

    SQL Server镜像自动生成脚本 镜像的搭建非常繁琐,花了一点时间写了这个脚本,方便大家搭建镜像 执行完这个镜像脚本之后,最好在每台机器都绑定一下hosts文件,不然的话,镜像可能会不work 1 ...

  9. 分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间)

    分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间) 很多时候我们都需要计算数据库中各个表的数据量和每行记录所占用空间 这里共享一个脚本 CREATE TABLE #tab ...

随机推荐

  1. 如何使用NPM?CNPM又是什么?

    背景介绍 什么是npm? npm(node package manager)是nodejs的包管理器,用于node插件管理(包括安装.卸载.管理依赖等), NPM是随同NodeJS一起安装的包管理工具 ...

  2. Qt 添加程序图标和系统托盘图标

    添加程序图标 第一种方法: 1.创建程序的时候,选择添加默认图标 2.替换程序目录下的ico文件,编译生成即可. 第二种方法: 比较适合一开始没有添加程序图标的情况 1.项目右键-->添加--& ...

  3. Android笔记(四十六) Android中的数据存储——XML(二)PULL解析

    PULL 的工作原理: XML pull提供了开始元素和结束元素.当某个元素开始时,可以调用parser.nextText()从XML文档中提取所有字符数据.当解析到一个文档结束时,自动生成EndDo ...

  4. RestTemplate对象,进行get和post简单用法

    如果只是针对纯Rest接口处理的话,我们可以使用restTemplate对象来操作,简单方便,可以不需要手写httpClient代码了. 我们看下基本的用法,如下: 1.getForObject cl ...

  5. ARM的Semihosting技术(转)

    Semihosting技术将应用程序中的IO请求通过一定的通道传送到主机(host),由主机上的资源响应应用程序的IO请求, 而不是像在主机上执行本地应用程序一样,由应用程序所在的计算机响应应用程序I ...

  6. php数组,常量,遍历等

    php常量,常量是不能被改变的,由英文字母,下划线,和数字组成,但是数字不能作为首字母出现. bool define ( string $name , mixed $value [, bool $ca ...

  7. mysql 优化修复表

    OPTIMIZE TABLE `table_name` 优化表 MyISAM 引擎清理碎片 OPTIMIZE语法: OPTIMIZE [LOCAL | NO_WRITE_TO_BINLOG] TABL ...

  8. Linux命令——modprobe

    参考:5 UNIX / Linux modprobe Command Examples Linux modprobe command 简介 modprobe用于向Linux Kernel添加 或 移除 ...

  9. Python_文件相关操作

    1.open(filePath,type)方法:打开文件 filePath:文件路径 type:操作文件的方式(r:读取,w:覆盖写入,a:追加写入) 2.strip()方法:去除读取到的每行内容后的 ...

  10. Problem E: 数量的类模板

    #include<iostream> #include<iomanip> #include<algorithm> using namespace std; temp ...