|
发表于 2013-5-25 08:59:40
|
显示全部楼层
本帖最后由 woaishuijia 于 2013-5-25 09:20 编辑
" I% _# N) T! G; q, r( [( v' ?2 l, X# z1 h: s
v. r C& `( |/ n T- r/ `# x- z
还是不明白你的意思.不过大体上能回答你了- A0 h2 v6 q) i9 W+ J# F
"按一定的厚度分割",不知道你的"厚度"指什么.分割三维实体通常可以用"布尔运算"(并,差,交集)或"剖切"方法' w5 o ]% {! B. l1 _7 G$ s3 {# W) x. s
布尔运算在ACAD类库中用 3DSolid 对象的 Boolean 方法.该方法有两个参数,第一个是 AcBooleanType 常数,其中有 acUnion: 执行并集运算;acIntersection: 执行交集运算;acSubtraction: 执行差集运算.第二个参数是要与使用本方法的 3DSolid 对象进行布尔运算的另一个 3DSolid 对象.运算成功后,使用本方法的 3DSolid 对象被改变.格式是- 三维实体对象.Boolean AcBooleanType 常数, 另一个 3DSolid 对象
复制代码 剖切在ACAD类库中用 3DSolid 对象的 SliceSolid 方法.该方法有四个参数和一个返回值,前三个是构成剖切平面的三个三维点,每个点都是三元素双精度数组,数组中三个元素分别是该点WCS的三维坐标;第四个参数是一个布尔型变量(含义后面说).剖切成功后,使用本方法的 3DSolid 对象被改变为原三维实体的剖切平面正法向部分.如果第四个参数为 True ,则返回值是原三维实体的剖切平面负法向部分;如果为 False ,则返回值是原三维实体的剖切平面正法向部分.格式是- 返回的三维实体 =原三维实体.SliceSolid(点一数组,点二数组, 点三数组,True 或 False)
复制代码 "把切面保存下来",不知道你的"切面"指什么.如果是指分割三维实体后剩下的实体部分,前面已经回答你了;如果是指剖切三维实体时使用的平面,则 SliceSolid 方法用到的前三个参数(三个点)就代表了该平面;如果是指三维空间中某个平面与三维实体相交的平面图形,则应使用 3DSolid 对象的 SectionSolid 方法.该方法有三个参数和一个返回值.三个参数是构成与实体相交平面的三个三维点,每个点都是三元素双精度数组,数组中三个元素分别是该点WCS的三维坐标;返回值是一个面域(Region)对象,即三维实体与平面相交处的平面图形.格式是- 返回的面域对象 = 三维实体对象.SectionSolid (点一数组,点二数组, 点三数组)
复制代码 |
|