请选择 进入手机版 | 继续访问电脑版

[讨论] 【已解决】怎么把控制点拉回到曲面上。不要重新成体

[复制链接]
2668015 太平公主主 发表于 2017-2-22 14:00:28 楼主
本帖最后由 筑梦NARUTO 于 2017-2-22 17:36 编辑

大神帮我解决这个问题 ,怎么把控制点拉回到曲面上。不要重新成体。也不要手动去拉

怎么把控制点拉回曲面上,不要重新成体

怎么把控制点拉回曲面上,不要重新成体
关于大陆地区Rhino原厂培训中心
筑梦NARUTO 发表于 2017-2-22 14:25:13
2
本帖最后由 筑梦NARUTO 于 2017-2-22 15:55 编辑

不要重新成体是啥意思,你能示范一下你要的结果么我是不是给你发过一段代码用于移动控制单的呀
  1. #coding=utf-8
  2. import Rhino.Geometry as rg
  3. import Rhino as r
  4. import rhinoscriptsyntax as rs
  5. import scriptcontext as sc

  6. result,grips = r.Input.RhinoGet.GetGrips("选择要移动的控制点")
  7. surface = rs.GetObject("选择用于干扰的曲面",rs.filter.surface)
  8. dis = {}
  9. if (result == r.Commands.Result.Success and surface):
  10.     geo_surface = sc.doc.Objects.Find(surface).Geometry
  11.     for i in grips:
  12.         oid = i.OwnerId
  13.         obj = sc.doc.Objects.Find(oid)
  14.         if (obj and dis.has_key(oid)==False):
  15.             dis.Add(oid,obj)
  16.         Bool = geo_surface.Faces[0].DuplicateSurface().ClosestPoint(i.Geometry.Location)
  17.         if Bool[0]:
  18.             cpt = geo_surface.Faces[0].DuplicateSurface().PointAt(Bool[1],Bool[2])
  19.             i.Move(cpt)
  20. for guid in dis:
  21.     if dis[guid]:
  22.         sc.doc.Objects.GripUpdate(dis[guid],True)
  23. sc.doc.Views.Redraw()
复制代码


 楼主| 太平公主主 发表于 2017-2-22 16:48:53
3
本帖最后由 太平公主主 于 2017-2-22 16:51 编辑

就是把选择的控制点拉到曲面上,你的代码是拉到一条曲线上,改下应该可以的,但人不会写代码,更不会改啊,大神帮再改下好吗,我都弄了好几天,弄不出结果,效果就是像下面这张图
file:///C:/Users/Administrator/Desktop/QQ%E6%88%AA%E5%9B%BE20170222164108.png
QQ截图20170222164108.png
 楼主| 太平公主主 发表于 2017-2-22 16:53:29
4
本帖最后由 太平公主主 于 2017-2-22 16:57 编辑
筑梦NARUTO 发表于 2017-2-22 14:25
不要重新成体是啥意思,你能示范一下你要的结果么我是不是给你发过一段代码用于移动控制单的呀

就是把选择的控制点拉到曲面上,你的代码是拉到一条曲线上,改下应该可以的,但我不会写代码,更不会改啊,大神帮再改下好吗,我都弄了好几天,弄不出结果,效果就是像上面面这张图,不要重新成体的意思。就是在原来的物体是拉控制点,不要用再抽点重新生成一个物体,万分感谢
 楼主| 太平公主主 发表于 2017-2-22 16:59:28
5
筑梦NARUTO 发表于 2017-2-22 14:25
不要重新成体是啥意思,你能示范一下你要的结果么我是不是给你发过一段代码用于移动控制单的呀

哦,我仔细看了一下代码,才发现你已经改过了,我再试试看看
 楼主| 太平公主主 发表于 2017-2-22 17:22:25
6
筑梦NARUTO 发表于 2017-2-22 14:25
不要重新成体是啥意思,你能示范一下你要的结果么我是不是给你发过一段代码用于移动控制单的呀

你的代码非常好,我试过成功了,你是RHINO界大神人物啊,非常感谢你,
魔龙教主 发表于 2017-2-22 19:21:43
7
拉回和投影不能针对控制点,这段代码是解决这个问题吗?弱弱地问一句,这些代码是不是可以用巨集来运行?我想看看效果结果报错了,请问是什么原因呢
QQ截图20170222191725.jpg
筑梦NARUTO 发表于 2017-2-22 21:49:31
8
魔龙教主 发表于 2017-2-22 19:21
拉回和投影不能针对控制点,这段代码是解决这个问题吗?弱弱地问一句,这些代码是不是可以用巨集来运行?我 ...

最好用Rhinopython编辑器运行。或者把代码做成按钮运行。
不知道rhinopython的可以先看下jorin大大的视频教程http://bbs.rhino3d.asia/thread-22775-1-1.html
筑梦NARUTO 发表于 2017-2-22 21:49:41
9
魔龙教主 发表于 2017-2-22 19:21
拉回和投影不能针对控制点,这段代码是解决这个问题吗?弱弱地问一句,这些代码是不是可以用巨集来运行?我 ...

最好用Rhinopython编辑器运行。或者把代码做成按钮运行。
不知道rhinopython的可以先看下jorin大大的视频教程http://bbs.rhino3d.asia/thread-22775-1-1.html
DAKA_Ye 发表于 2017-2-25 12:18:01
10
本帖最后由 DAKA_Ye 于 2017-2-25 13:39 编辑
筑梦NARUTO 发表于 2017-2-22 14:25
不要重新成体是啥意思,你能示范一下你要的结果么我是不是给你发过一段代码用于移动控制单的呀

可以把是投影效果的投影到曲线跟曲面的代码分别也发下吗?谢谢
您需要登录后才可以回帖 登录 | 注册成为会员

本版积分规则