NCF参数化建筑论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 15066|回复: 8
打印 上一主题 下一主题

[个人作品] RhinoScript曲面上写文字

[复制链接]
跳转到指定楼层
1m
发表于 2013-6-10 23:56:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 wangjunxiong 于 2013-6-10 23:58 编辑

RhinoScript曲面上写文字。懂的就拿去。

代码自己写的,偶是懒人,没处理,一团乱。

Option Explicit
'Script written by <insert name>
'Script copyrighted by <insert company name>
'Script version 2013年6月10日 21:18:57
Call Main()
Sub Main()
Const rhObjectSurface = 8
Dim strObject, arrMP,aa,line,vector,line1,plane,str,text,h,d,ptend,ptstart
Dim int,angle,vector1

d = 10 '文字大小
h = 0.5 '调节文字超出曲面距离
strObject = Rhino.GetObject("Select a surface", rhObjectSurface)
If IsNull(strObject) Then Exit Sub
str = rhino.GetString("请输入铝板编号:", "编号")
If Not IsNull(strObject) Then
  arrMP = Rhino.SurfaceAreaCentroid(strObject)
  If IsArray(arrMP) Then
   
   aa = Rhino.PullPoints(strObject, arrMP)
   line = rhino.AddLine(arrmp(0), aa(0))
   line1 = Rhino.ExtendCurveLength(line, 0, 1, h)
   Rhino.HideObject line1
   
   ptend = rhino.CurveEndPoint(line1)
   ptstart = rhino.CurveStartPoint(line1)
   vector1 = rhino.VectorCreate(ptend, ptstart)
   vector = rhino.VectorCreate(ptend, ptstart)
   plane = Rhino.PlaneFromNormal(rhino.CurveEndPoint(line1), vector)
   text = rhino.AddText(str, plane, d)
   Do
    int = rhino.GetInteger("确定(0),旋转文字(1),翻转文字(2),取消翻转文字(3)", 0)
    If int = 1 Then
     angle = (rhino.getreal("输入旋转角度", "0.0")) '/ 180 * (rhino.PI)
     rhino.Print angle
     plane = Rhino.RotatePlane(Plane, angle, vector1)
     rhino.DeleteObject text
     text = rhino.AddText(str, plane, d)
    Else
     If int = 2 Then
      vector = rhino.VectorCreate(ptstart, ptend)
      plane = Rhino.PlaneFromNormal(rhino.CurveEndPoint(line1), vector)
      rhino.DeleteObject text
      text = rhino.AddText(str, plane, d)
     Else
      If int = 3 Then
       vector = rhino.VectorCreate(ptend, ptstart)
       plane = Rhino.PlaneFromNormal(rhino.CurveEndPoint(line1), vector)
       rhino.DeleteObject text
       text = rhino.AddText(str, plane, d)
      Else
       If int = 0 Then
        Exit Sub
       End If
      End If
     End If
     
    End If
   
   Loop
  End If
End If

End Sub


如图,加编号,您懂的!

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享分享
2m
发表于 2013-6-11 11:49:55 | 只看该作者
很不错啊,,,,
3m
发表于 2013-6-30 22:10:34 | 只看该作者
确实是很简单的活。
4m
发表于 2013-7-12 15:32:11 | 只看该作者
照度很重要.
5m
发表于 2013-8-6 09:42:57 | 只看该作者
用GH怎么做啊~~~大师1!!!~~~
6m
发表于 2013-11-27 11:26:41 | 只看该作者
rs太复杂了。。。完全无法接受啊
7m
发表于 2013-11-28 10:11:51 | 只看该作者

用GH怎么做啊~~~大师1!!!~~~
8m
发表于 2014-4-10 17:52:49 | 只看该作者
9m
发表于 2014-4-29 11:51:14 | 只看该作者
小手一抖,经验到手,为了升级,到处游走,纯属路过,不要介意,高抬贵手,立马飘走....

小黑屋|手机版|NCF参数化建筑论坛 ( 浙ICP备2020044100号-2 )    辽公网安备21021102000973号

GMT+8, 2024-4-25 02:00 , Processed in 0.200893 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表