少尉
UID2367596
U币1
G币2058
技术0
主题51
精华1
阅读权限75
注册时间2015-6-28
最后登录2021-3-13
在线时间69 小时
居住地浙江省 温州市 乐清市 乐成镇
QQ
手机15757753770
出生地辽宁省 大连市
少尉
|
纯grip选择面返回实体
uf有函数 grip没函数但是他可以做到 纯grip选择面返回实体
面 获取实体函数 UF_MODL_ask_face_body
边缘获取实体函数 UF_MODL_ask_edge_body
grip也可以 根据 实体 边缘 或面返回 实体 (纯grip) 这个比选面返回边缘简单一点
主要是你们可以参考思路
先看这个帖子 在看 纯grip 获得平面 最外边缘
如下 代码 grip 选择对象面返回 实体
Gripsw / Declrv
Entity / Obj,Pt(2),B(10000),F,Box
Number / Resp,Num(3),N,U,V,I
L10:
Mask/71
Ident/'梅雷提示!请选择目标面',F,Resp
Jump/L10:,End:,,,Resp
$$ 获得面边缘上的一个点(这个点一定在面边缘)
Pt(2) = Solent/F,Edge,1,Iferr,Err:
B=Soledg/Pt(2),Cnt,N,Iferr,Err:
Num(1..3)=&Spoint(B(1))
Pt(1)=Point/Num(1..3)
Delete/B(1..N)
$$ 循环所有实体,判断点是否在实体表面
$$ 如果点在实体表面 ,循环这个实体上所有面
$$ 如果你选择的面在实体上就返回 Box
Mask/70
Inexte/All
Loop1:
Obj=Nexte/Ifend,Loop2:
N = Encont/Pt(1),Obj,Iferr,Loop1:
Ifthen/N ==3
B = Solent/Obj,Face,All,Iferr,Loop1:
N=&Soldat(Obj,Face,Iferr,Loop1:)
Do/Loop3:,I,1,N
Ifthen/B(I)==F
Box=Obj
Jump/Loop2:
Endif
Loop3:
Endif
Jump/Loop1:
Loop2:
Ifthen/Box==&Nulent
Messg/'你选择的对象是个片体'
delete/Pt(1)
Halt
Endif
delete/Pt(1)
&Color(Box)=1 $$给面上颜色
End:
Halt
Err:
Messg/'无效的表面'
Halt
|
版权声明 |
|
本人声明此帖为本人原创帖,未经允许,不得转载!
|
|