思路错了这样的问题应该子啊导入导出上下功夫

---法线问题基本是通过角度判断
--- normal*a.*正常的*,*普通的* problem*n.*问题,疑难* form*n.*形式*,*形状*vt.*形成* verdict*n.*裁决*,*定论*
---
/*
polyop.getFaceSelection $

 p_22 = polyop.getFaceNormal $ 19 --node:<node=unsupplied>
  
   p_14 = polyop.getFaceNormal $ 151 --node:<node=unsupplied>
  
     acos (dot p_22 p_14)
  */
---可以通过面的角度进行,

---这个操作估计即 思路有了问题, 应该在已有工具上使用。

fn normal_flipvt  face_num =
(
    level1 =modpanel.getcurrentobject()
   if classOf level1==Edit_Poly or classOf level1== Editable_Poly then
   (
   
 /*   try ( selfaces = polyop.getNumFaces  level1)
   catch (
  selfaces= $.Edit_Poly.EditPolyMod.GetNumFaces() --node:$
   
   )  */
   
    selfaces = polyop.getFaceSelection $
    selfaces=(selfaces as array) 
   -- selfaces.numberSet
    for i in 1 to selfaces.count do ---*aux.v.vt.*做*,*干*,*办
    (
    try ( $.EditablePoly.SetSelection #Face #{(selfaces[i])})
    catch ($.Edit_Poly.EditPolyMod.select  #Face #{(selfaces[i])} )
   /*  try ( $.EditablePoly.SetSelection #Face #{(selfaces[i+1])})
    catch ($.Edit_Poly.EditPolyMod.select  #Face #{(selfaces[i+1])} )  */
     p_22 = polyop.getFaceNormal $ ((selfaces[i]))
    /*  p_14 = polyop.getFaceNormal $  (selfaces[i+1]) */
      p_14 = polyop.getFaceNormal $  face_num
     if acos (dot p_22 p_14)>130. then
     (
   try ( $.EditablePoly.SetSelection #Face #{(selfaces[i])})
      catch ($.Edit_Poly.EditPolyMod.select  #Face #{(selfaces[i])} )
     
     try ($.EditablePoly.flipNormals 1)
      catch (
      $.Edit_Poly.EditPolyMod.ButtonOp #FlipFace
        )      
     
     )
    
    )---end*n.*末端*,*目标*vt.*结束* 
   )
   ) --- end*n.*末端*,*目标*vt.*结束* function*n.*功能*,*职务*,*函数*
  
    try (DestroyDialog gt_yongchao_normal) catch ()
  --- 我觉得英爱充开始就杜绝。
  rollout gt_yongchao_normal  "盖天-强力uv" 162 height:300
(
 button pickk "拾取顶层面"  --[filter:<function>]*[toolTip:<string>]*[autoDisplay:<boolean>]*
 button btn1 "修真法线"  107 height:30
 
 on pickk  pressed do
 (
  if classOf level1==Edit_Poly or classOf level1== Editable_Poly then
  (
   selfaces = polyop.getFaceSelection $
    if selfaces.numberSet==1 then
    (
     pickk.text= (selfaces as Array)[1] as string
    )
   
  )
  
  
 )---end*n.*末端*,*目标*vt.*结束* pick*vt.*拾;采摘;挑选*
 
 on btn1 pressed do
 (
  for i in selection do
  (
   normal_flipvt  (try (pickk.text as integer)catch (1))
  )
  
 )
 )
 CreateDialog gt_yongchao_normal


 

原文地址:https://www.cnblogs.com/gaitian00/p/2219944.html