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

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

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 這三者有個清晰的認識。

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

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

# 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 就是一個物件,比如點、線、面等等。

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章