添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
不爱学习的钥匙扣  ·  JSON Schema Form ui ...·  2 周前    · 
豪气的勺子  ·  53 - 骚乱 · Wisdom ...·  3 周前    · 
从容的香蕉  ·  conda 更新 python 版本 | ...·  1 月前    · 
憨厚的烈酒  ·  管道缓存 - Azure ...·  3 月前    · 
这是一个简单巨集的案例,只要用一个指令就可以设定好一连串的选项,所以不用每次用到此功能就要注明很多设定。 ExtrudeCrv 有几个“预先设定的选项”的按钮, Tapered , AlongCurve , ToPoint , Cap=Yes (solid) 等等。 查看 ExtrudeCrv 按钮来检视到底是如何布局的。 这有点像您在下指令的时候按或是输入选项,一次一个。 事实上巨集不过就是这样的东西而已,是一组指令重复序列,不建立巨集的话,您只能手动输入一个个的指令。 一个单一指令的脚本选项可能与数据组合(比如坐标或是其他数据资料)。 也可以将数个指令串联在一起,就是把操纵或是建立物件的““事件”自动排序。 注: 为何用下底线_? 下底线告诉Rhino,无论在任何语言环境下执行Rhino,接下来的指令是英文,这样的巨集不管在何种语言环境下都可以使用。如果您已经在英文环境下作业,在不造成其他影响的情况下,可以消除下底线( _ )。 为什么要用惊叹号( ! )? 为安全起见,这可以取消前一个在运作的任何指令。 假设你已经把一连串10 x 10 x 10的方块底部放置在想要位置的中心,那个中心点可以经由鼠标在想要的位置点一下,或是用键盘输入坐标来设定。 使用者可以使用立方体指令(角对角加高度),但在预设值里,插入点将会被放置在立方体的第一个角。 要把插入点放在使用者想要的地方,使用立方体还有居中的指令会比较简单。事实上这只是立方体指令加上居中的选项,所以在巨集里,使用者需要启动此功能。 开启 巨集编辑器 ,键入以下指令:
! _Box _Center 
这是立方体底下的巨集,底部居中
所有输入(指令或是数据输入),都必须要有一个空格隔开。 现在我们需要定位中心点。要完成这个任务,Rhino被告知暂时停止处理指令,直到使用者用鼠标点选或是用键盘输入坐标。这是藉由”暂停“(Pause)命令来达成的。
! _Box _Center _Pause
只要输入数据,就可以直接用指令来指定正方体的尺寸。 既然立方体居中选项需要一个立方体的角来做第二个输入,我们就可以指定它的X, Y坐标:
! _Box _Center _Pause r5,5
(为什么要用”r“? 我们希望这个坐标是最后一个选取的点,也就是立方体底部的中心。不然立方体的角永远都会落在X5, Y5) 此时我们可以加入高度,在此案例中大概是原来的起点。
! _Box _Center _Pause r5,5 10
由于并没有进一步输入的需要,巨集到此完成,正方体也完成。请注意因为我们希望正方体的长宽相等,有另外一种可能性是直接按Enter,而不是最后输入的”10“。
! _Box _Center _Pause r5,5 _Enter
现在巨集运作中,而且您也挺满意的。 制作一个新的工具列按纽 并且将巨集贴进去,再给它一个好认的名字,比如“10 x 10 x 10 bottom centered box”。 只要巨集被执行过一次,以后只要按右键,就会自动执行,而无须每次点击按钮。 如果你想要重复放样两个 开放的 曲线来组成一个曲面。用 Loft 指令的话,你还是需要点选一些对话框。如果使用 -Loft ,就可以避开对话框,效率也比较好。来看看以下的例子。
_-Loft
_Pause
_Type=_Normal
_Simplify=_None
_Closed=_No
_Enter
要注意的是该命令暂停时,您挑选所需的曲线后,立即就会执行。如果这个暂停被拿掉,当您尚未挑选曲线时,巨集也不会继续进行。 如果您事先选择了曲线,那么这个暂停将自动被忽略。接下来这个指令会继续设置您指定的所有选项,并且完成曲面。 试试看用两个开放曲线,不管是事先或是之后才选取。 尝试修改其中一个或是多个选项,比如 Closed= Yes 或是 Simplify= Rebuild (对于这一点您必须加上 Rebuild= 20 或是其他数值。) 巨集也可以自动设定不同GUI和文件内容选项,而无须进入选项对话框。我用以下的方式来设定自己想要的彩线网格方式。(注意-_DocumentProperties前面的- 破折号)
-_DocumentProperties
_Mesh _Custom
_MaxAngle=0 _AspectRatio=0
_MinEdgeLength=0 _MaxEdgeLength=0
_MaxEdgeSrf=0.01 _GridQuads=16
_Refine=Yes _JaggedSeams=No
_SimplePlanes=No
_Enter
_Enter
为何最后要两个Enter? 因为在-_DocumentProperties之下我们进入了两层,第一层是网格,第二层是网格的自订子层。第一个Enter用来离开子层并且回到主层,第二个Enter用来离开指令。有些脚本可能需要三个Enter。 以下是Jeff LaSor关闭或开启鼠标游标的脚本。 要开启或关闭鼠标游标,您必须将以下步骤键入按钮设定:
  -_Options _Appearance _Visibility
  _Crosshairs _Enter _Enter _Enter
请注意每个指令选项名字。在脚本里面指定这些指令,就像使用鼠标点选。 同样也请注意三个enter的输入。 在本案例,每个指令能带领使用者进入下一层指令选项,也就是说您需要一个Enter指令来回到上一层。既然这个脚本进入了三个子层,所以也需要3个Enter来离开此指令。 或者,不管之前进入了多少个子层,最后使用一个惊叹号”!“ 就可以马上回到原来的地方。注:如果您想要继续使用此巨集,千万不要用惊叹号”!“,而是用Enter,否则此巨集将永远停在”!“处,然后关闭。 以上脚本只是将鼠标游标开启或关闭,但如果您需要一个一直开启或是一直关闭的鼠标游标,请参考以下脚本: 鼠标游标永远开启:
  -_Options _Appearance _Visibility
  _Crosshairs=_Show !
鼠标游标永远关闭:
  -_Options _Appearance _Visibility
  _Crosshairs=_Hide !
请注意这里的”!“,参考上述提醒过的重点。 也请注意无论选项设定值为何,可以用 '=' 直接定。鼠标游标有两种可能的选项,”Show“和”Hide“, 谢谢你,Jeff。 有一些小技巧可以用来编写更复杂的巨集。其一是不同筛选器的识别,尤其是 SelLast ,这个指令选取最后一个建立/转换的物件。 SelPrev ,是选取前一个输入的物件。 SelNone 则是取消选取所有的物件。 也可以命名多个物件,将它们选为一组,然后命名这个群组。 之后再用这些名字叫出此物件/群组。
Select
SelLast
SelPrev
SelNone
SetObjectName
SetGroupName
SelGroup
SelName
Group
Ungroup
设置单一物件名称
  _Properties _Pause _Object _Name
  [输入物件名称] _Enter _Enter
取消单一物件名称,但不删除此物件
  _Properties _Pause _Object _Name
  “ “ _Enter _Enter (quote space quote for the name)
请阅读以下巨集:
_Select _Pause _Setredrawoff
_BoundingBox _World _Enter
_Selnone _Sellast
_OffsetSrf _Solid _Pause
_Delete _Sellast
_BoundingBox _World _Enter
_Delete _Setredrawon
此脚本建立一个偏移值边框方块围绕的物件,此偏移值由使用者输入。The Setredrawoff/on stop/restart 会停止或重新启动荧幕更新,执行之后可以消除画面闪烁,并且加速处理。但是要小心,如果在Setredrawon之前中止指令,您会以为Rhino当机,因为荧幕不再更新。 别担心,只要键入Setredrawon,荧幕就会恢复原状。 最后一个案例 :以下巨集建立一个在2D平面或是文字物件上的中心点。这个巨集预设使用者与文字在同样的视图上,那么此物件是2D平面的。 请注意已命名的群组还有各种指令的使用, NoEcho 暂时停止对于指令的回报,与Setredrawoff/on共同使用,可以让巨集运作时不闪烁,也不会有过多的指令回报。 当然不用 NoEcho 也是可以运作的。
_Select _Pause _Noecho _Setredrawoff
_Group _Enter _SetGroupName TexTemp
_BoundingBox _CPlane _Enter
_SelNone _SelLast _PlanarSrf
_SelPrev _Delete _SelLast
_AreaCentroid _Delete
_Sellast _SelGroup TexTemp
_Ungroup _Group _Setredrawon