NCF参数化建筑论坛

标题: RhinoScript曲面上写文字 [打印本页]

作者: wangjunxiong    时间: 2013-6-10 23:56
标题: RhinoScript曲面上写文字
本帖最后由 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


如图,加编号,您懂的!

[attach]39045[/attach]

事实上用GH非常简单。


作者: 月之眼    时间: 2013-6-11 11:49
很不错啊,,,,
作者: stjackin    时间: 2013-6-30 22:10
确实是很简单的活。
作者: 飞天猪(猪!    时间: 2013-7-12 15:32
照度很重要.
作者: xyc44444444    时间: 2013-8-6 09:42
用GH怎么做啊~~~大师1!!!~~~
作者: kss13    时间: 2013-11-27 11:26
rs太复杂了。。。完全无法接受啊
作者: bxc3594883    时间: 2013-11-28 10:11

用GH怎么做啊~~~大师1!!!~~~
作者: 毅心    时间: 2014-4-10 17:52
bxc3594883 发表于 2013-11-28 10:11
用GH怎么做啊~~~大师1!!!~~~

用TAG运算器
作者: 天地浑元    时间: 2014-4-29 11:51
小手一抖,经验到手,为了升级,到处游走,纯属路过,不要介意,高抬贵手,立马飘走....




欢迎光临 NCF参数化建筑论坛 (http://bbs.ncf-china.com/) Powered by Discuz! X3.2