2022/06/02
*この記事で扱っているVectorworksのバージョンはVectorworks architect 2019 です。
今回はMarionette(マリオネット)の
「Alert Critical」ノードについて。
アラートダイアログを表示します。
このノードは〈Marionette Default Library〉の中の
〈ダイアログ類〉のリソースフォルダにあります(fig.1.)。
fig.2の茶色いノードです。
fig.1. Alert Criticalの納められたリソースマネージャ.
fig.2. デザインレイヤ上に設置したAlert Criticalノード.
オブジェクト情報パレットには
〈advice〉と〈text〉という欄に
テキストが入力できます。
fig.3. Alert CriticalノードのOIP.
〈マリオネットノード〉を選択して
OIP(オブジェクト情報パレット)にある
〈説明〉ボタンをクリックし
それぞれ入力する内容は説明を読んでみる。
すると〈advice〉が注釈文、〈text〉は本文が
入力できることがわかります(fig.3.)。
fig.3. Alert Criticalノードの説明ウィンドウ.
0以下の数値を入力したときにアラートを
表示したくて少し試行錯誤してみました。
......
今の私ではなかなかうまくつくれなかったので、
ノードの中を書き換えてみました。
#Created April 2017
#Modified by KMachida April 2022
@Marionette.NodeDefinition
class Params(metaclass = Marionette.OrderedClass):
#APPEARANCE
#Name
this = Marionette.Node( 'Alert Critical' )
this.SetDescription('Informs the user of a serious problem '
+ 'that requires intervention or correction '
+ 'before work can continue.' )
#Input Ports
input = Marionette.PortIn( [], 'item')
input.SetDescription( "input" )
#OIP Controls
alertTxt = Marionette.OIPControl( 'text', Marionette.WidgetType.Text, 'Alert')
alertTxt.SetDescription('The information to be displayed')
advTxt = Marionette.OIPControl( 'advice', Marionette.WidgetType.Text, 'Advice')
advTxt.SetDescription('The text to be added in a smaller font '
+ 'under the main information message')
#Output Ports
output = Marionette.PortOut('item')
output.SetDescription( "output" )
#BEHAVIOR
def RunNode(self):
#inputs
input = self.Params.input.value
#script
if input == False:
vs.AlertCritical(self.Params.alertTxt.value, self.Params.advTxt.value)
else:
pass
#outputs
self.Params.output.value = input
これでFalseが入力されたときに
アラートが表示されるようになりました(fig.4,fig.5)。
そして、今回は〈Text〉ノードをつかって
〈文字列図形〉も表示されるようにしました(fig.5)。
これは0以下の数値を入力して
四角形などのオブジェクトがつくられなかったときに
マリオネットオブジェクトが
消えてしまわないようにつくりました。
ちなみにテキストのフォントなどの設定は
Set_Char_Properties のページを
参照してみてください(fig.5)。
#Vectorworks
#ベクターワークス
#Marionette
#マリオネット
#Alert
#アラート
#文字列図形
#text
#テキスト
#SetCharProperties
#GetFontID
#font
#フォント