Sketchup 程序自動化(一)基本結構

image

在文章開始之前,我向說明以下兩點:

1、我們怎么編寫Sketchup 的Ruby腳本程序 ?腳本如何執行 ?

進行 Sketchup 二次開發的主要工具,是通過一款文本編輯插件rubyeditor,代碼編寫完成后,可通過點擊運行按鈕就可以在Sketchup界面看到運行的結果,控制臺也會顯示相關信息,比如報錯信息等等。

在程序代碼編寫完畢后,我們可通過編輯插件進行保存,保存為.rb文件,Sketchup程序執行的目錄為 Plugins 文件夾,我們需要把.rb文件放入其中。

# 找到本機的 Plugins 文件夾
UI.openURL("file:///#{Sketchup.find_support_file('Plugins')}")

這樣我們就可以控制臺調用我們所編寫的程序。在控制臺輸入:

# 后面為 Plugins 文件夾下的路徑
load "mycode/001.rb"

2、注釋和程序調試

注釋是我們對自己代碼的備注,有利于提高我們代碼的可讀性,Sketchup 開發中可使用 “#” 號對單行代碼進行注釋,也可以使用“ =begin =end” 的方式進行批量注釋。

程序調試,主要是通過 “put” 方法對一些相關關鍵點進行打印輸出,根據輸出內容進行判斷代碼是否正確,當然我們也可以用來輸出一些數據。比如:

# Sketchup 名稱
puts Sketchup.name
# Sketchup 版本
puts Sketchup.version
# 當前加載模型的名字
puts model.title
# 這個檔案是否進行存儲
puts model.modified?
# 答應這個檔案的位置
puts model.path
# 輸出曲線的長度
puts curve.length

進入正文,在開始對Sketchup進行二次開發時,我們首先需要了解 Sketchup 官方給出的主要的類族,整體結構有個認識。
對于實際開發而言,主要是對 Sketchup Module -> Model -> Entities 這三者有個清晰的認識。

image

Sketchup Module :是Sketchup專屬的模組,處理軟件層級的信息,比如設置本機的Sketchup設置選項,輸出當前軟件的語言,版本等等。

Model :Sketchup.active_model 返回的Model物件,是對當前Sketchup中物件的容器,我們主要使用它來處理容器中的這些物件。

image
# layers 圖層:包含了所有的圖層信息
layers = model.layers
# definitions 物件關聯的元件定義
definitions = model.definitions
# materials 材質信息
materials = model.materials
# options 有關模型的設定選項
options = model.options
# pages 場景書面信息
pages = model.pages

# 返回了容器中所有的圖形信息,這也是我們進行二次開發的主要戰場。
entities :model.entities 

entities 數組中包含的是許多 Entity 對象,或者具體的說是Entity及其子類對象,每個 Entity 就是一個物件,比如點、線、面等等。

image

Entity 類也是一個超級類,提供了許多建立具體物件的方法,其中子類中的Drawingelement 為我們二次開發提供了大量對具體物件的操作API,畫線畫面等基本操作就是在這一層提供的,比如:add_line 、add_circle 返回一個Edge實體對象,add_face 返回face實體對象,這些對象都是Entity的子類Drawingelement的子類。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,033評論 25 708
  • 這周看了本書,書名叫《西藏的女兒》,是位年輕女性藏族作者寫的,她寫到了從西藏的女兒寫到了格薩爾王的王妃,女神班丹拉...
    15央宗閱讀 460評論 1 0
  • 文:莠子 黃藥師究竟有多么不喜歡郭靖?那是非常非常的不喜歡。 在郭靖與黃蓉成親之前,黃藥師就反復阻止,要不是黃蓉拼...
    莠子閱讀 693評論 2 2
  • 今晚流氓兔推薦的歌曲是《甘心情愿》,郭峰。一開始聽這首歌的時候感覺旋律有點熟悉,越聽到后面才知道原來很久很久以前聽...
    佐恬閱讀 173評論 0 0