|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
今天起来比较晚,都是11点了,然后在宿舍搞了一下这个建模,,但是没太大的进展。
中饭吃了以后去看了电动车,13点10开始继续搞,一口气搞到了18点,然后完胜19点30开始一口气感到了21点30分
进展:
1.初步完成一次一次式的布尔算法,
2.对于建模的方法有了初步的认知:
首先使用Rhin.Geometry中的方法(如Cylinder)进行生成一个模型,但是这只是内存中的数据,(有的)还需要使用ToBrep(),或者还有的直接使用calss.Brep()得到Brep
然后就是,Brep是重要的建模数据,其表达了建模基本信息。布尔运算就是针对Brep对象操作的。
获取Brep方法就是在建模中就直接得到,目前box函数和cylinder函数都是直接得到Brep对象,差集函数似乎出现了点问题。
获取对象的方法:使用FirstObject方法得到一个id,这个我用来删除。
总结建模的思路:
1.box生成,得到Brep和guid
2.开始迭代:
生成一个cylinder,获取其Brep和guid
进行差集运算 -----> boolean(box)
判断:条件 ------> dif(其元素dif[0]是一个Brep)!= 0 判断是不是失败了
如果失败:那么刚刚的cylinder仍然存在,因此需要删除之 ------>deleteObject(guid)
如果成功:那么box和cylinder也存在,所以需要删除这两个-----> deleteObject(list[guid])
box的guid和Brep <<<< dif[0]
程序一共这两大步骤,现在看来没啥问题,明天早上再看看这个算法是否有误。
技术关键点:检查使用别人的布尔函数为什么会出现多余的box。
|
|