def innovate(doc): global k3d # Give folks a chance to bail ... if k3d.ui().query_message( "Are you sure? Don't run this script on a real working document!", ["OK", "Cancel"]) == 2: return # Start recording changes for undo-purposes ... doc.start_change_set() try: # Deliver "value" ... for node in doc.nodes(): node.name = "Microsoft " + node.name + " (TM)" # Finish recording undos ... doc.finish_change_set("Innovate!") # Communicate the good news to our "customer"! k3d.ui().message( "You have been Innovated ... check your Node List Panel (it's undo-able)" ) except: doc.cancel_change_set() raise
def innovate(): global context global k3d # Give folks a chance to bail ... if k3d.ui().query_message("Are you sure? Don't run this script on a real working document!", ["OK", "Cancel"]) == 2: return # Start recording changes for undo-purposes ... context.document.start_change_set() try: # Deliver "value" ... for node in k3d.node.lookup(context.document): node.name = "Microsoft " + node.name + " (TM)" # Finish recording undos ... context.document.finish_change_set("Innovate!") # Communicate the good news to our "customer"! k3d.ui().message("You have been Innovated ... check your Node List Panel (it's undo-able)") except: context.document.cancel_change_set() raise
#python import k3d a = "context 1" k3d.ui().message(a) recursive_script = """#python import k3d a = "context 2" k3d.ui().message(a) """ k3d.script.execute(recursive_script) k3d.ui().message(a)
#python import k3d k3d.ui().message("Howdy, World!");
#python # -*- coding: utf8 -*- #coding: UTF-8 # # K-3D Ver.0.8.0.0 用 # #日本語メッセージ表示のテスト # import k3d import sys sys.setdefaultencoding('utf-8') ## UnicodeでないASCII文字列 OK k3d.ui().message("Howdy, World!") ## UnicodeのASCII文字列 NG k3d.ui().message(u"Howdy, K-3D World!") ## Unicodeの日本語文字列 NG k3d.ui().message(u"こんにちは、K-3D の世界よ!")
#python import k3d k3d.log.debug("***** Selected Nodes *****") selection_nodes = k3d.node.lookup(context.document, "ngui:unique_node", "node_selection") if len(selection_nodes): for node in selection_nodes[0].selected_nodes(): k3d.log.debug(node.name) k3d.log.debug("**************************") k3d.ui().message("Output sent to the K-3D log ... check your console output, or use Help > Open Log Window.")
#python import k3d if locals().has_key("Node"): k3d.ui().message("This script is executing within a node context") elif locals().has_key("Document"): k3d.ui().message("This script is executing within a document context") else: k3d.ui().message("This script is executing within the global context")
# python import k3d k3d.log.critical("This is a critical message!") k3d.log.error("This is an error message!") k3d.log.warning("This is a warning message!") k3d.log.info("This is an informational message!") k3d.log.debug("This is a debug message!") k3d.ui().message( "Wrote several messages to the K-3D log ... check your console output, or use Help > Open Log Window to see them." )
#python import k3d k3d.ui().message("Howdy,") recursive_script = """#python import k3d k3d.ui().message("World!") """ k3d.script.execute(recursive_script)
#python import k3d class inspector: def print_node(self, Node, Level): message = "" for j in range(Level): message += " " message += "command-node: " + Node.command_node_name() k3d.log.debug(message) for child in Node.children(): self.print_node(child, Level + 1) for node in k3d.command_nodes(): inspector().print_node(node, 0) k3d.ui().message("Output sent to the K-3D log window.")
# Assign a color to each primitive ... Cs.assign([k3d.color(1, 0, 0), k3d.color(0, 1, 0), k3d.color(0, 0, 1), k3d.color(1, 1, 1)]) # Add a single operator to the blobby to add all four primitives together ... blobby.first_operators().append(len(blobby.operators())) blobby.operator_counts().append(1) blobby.operators().append(k3d.blobby.operator_type.ADD) blobby.operator_first_operands().append(len(blobby.operands())) blobby.operator_operand_counts().append(5) blobby.operands().assign([5, 0, 1, 2, 3]) # Operand count, followed by the index of each primitive to add # Connect the FrozenMesh to a MeshInstance to place it in the scene ... mesh_instance = k3d.plugin.create("MeshInstance", context.document) mesh_instance.name = "Blobby Instance" mesh_instance.gl_painter = k3d.node.lookup_one(context.document, "GL Default Painter") mesh_instance.ri_painter = k3d.node.lookup_one(context.document, "RenderMan Default Painter") k3d.property.connect(context.document, frozen_mesh.get_property("output_mesh"), mesh_instance.get_property("input_mesh")) # Make the MeshInstance visible to render engines ... k3d.node.show(context.document, mesh_instance) context.document.finish_change_set("Create Test Blobby") k3d.ui().message("Note: not all RenderMan engines can render blobby geometry!") except: context.document.cancel_change_set() raise
factories = k3d.plugin.factory.lookup() application_plugins = [] document_plugins = [] for factory in factories : if factory.is_application_plugin(): application_plugins.append(factory.name()) if factory.is_document_plugin(): document_plugins.append(factory.name()) application_plugins.sort() document_plugins.sort() print "\nApplication Plugins:" for plugin in application_plugins: print "\t" + plugin print "\n\t" + "Total: " + str(len(application_plugins)) print "\nDocument Plugins:" for plugin in document_plugins: print "\t" + plugin print "\n\t" + "Total: " + str(len(document_plugins)) import sys sys.stdout.flush() k3d.ui().message("Output sent to console")
#python import k3d k3d.ui().message("This is a message!") k3d.ui().warning_message("This is a warning message!") k3d.ui().error_message("This is an error message!") result = k3d.ui().query_message("Pick one!", ["Choice 1", "Choice 2", "Choice 3"]) k3d.ui().message("You chose " + str(result)) result = k3d.ui().get_file_path("read", "test", "Choose file to read (doesn't actually read anything):", "") k3d.ui().message("You chose " + str(result)) result = k3d.ui().get_file_path("write", "test", "Choose file to write (doesn't actually write anything):", "") k3d.ui().message("You chose " + str(result))
#python import k3d # # K-3D Ver.0.8.0.0 用 # テストスクリプト # # ファイルをUTF-8で保存すると、日本語のコメントは正常に表示される。 # Unicoe 文字列が使えない。 # 文字列に日本語を書いたら、通った。いいのか、それで。 ## 通常のメッセージ #k3d.ui().message("This is a message!") k3d.ui().message("This is a メッセージ!") ## 警告メッセージ #k3d.ui().warning_message("This is a warning message!") k3d.ui().warning_message("This is a 警告メッセージ!") ## エラーメッセージ #k3d.ui().error_message("This is an error message!") k3d.ui().error_message("This is an エラーメッセージ!") ## 選択ボックス #result = k3d.ui().query_message("Pick one!", ["Choice 1", "Choice 2", "Choice 3"]) result = k3d.ui().query_message("ひとつ選んでね!", ["その壱", "その弐", "その参"]) #k3d.ui().message("You chose " + str(result)) k3d.ui().message("あなたが選んだのは[" + str(result) + "]でした。") ## ファイル選択(読み込み用) #result = k3d.ui().get_file_path("read", "test", "Choose file to read (doesn't actually read anything):", "")
#python import k3d k3d.ui().message("Howdy,") recursive_script = """#python import k3d k3d.ui().message("World!") """ k3d.execute_script(recursive_script)
#python import k3d if context.has_key("node"): k3d.ui().message("This script is executing within a node context") elif context.has_key("document"): k3d.ui().message("This script is executing within a document context") else: k3d.ui().message("This script is executing within the global context")
#python import k3d factories = k3d.plugin.factory.lookup() k3d.ui().message("There are " + str(len(factories)) + " K-3D plugins installed.")
def get_child(self, node): return self.doc.get_dependency(node.get_property("input_mesh")).node() def delete_downstream(self, node): while( node != None ): try: node_tmp = self.get_child(node,doc) self.doc.delete_node(node) node = node_tmp except: self.doc.delete_node(node) node = None freeze_scope = k3d.ui().query_message("Freeze Whole Document or Selected Instances?:", ["Whole", "Selected"]) keep_original = k3d.ui().query_message("Keep the Original Instances?", ["No", "Yes"]) if freeze_scope == 1: freeze_scope_string = "all" else: freeze_scope_string = "selected" if keep_original == 1: #dont keep creation_mode = "reuse" else: #keep creation_mode = "new" Document.start_change_set() try: FreezeMeshInstance(Document, creation_mode, freeze_scope_string)
#python import k3d # While recording state changes for undo/redo purposes, you must ensure that errors are handled properly! context.document.start_change_set() try: if k3d.ui().query_message("Choose one ...", ["Succeed", "Fail"]) == 2: raise RuntimeError("Simulated error condition.") null_node = k3d.plugin.create("Null", context.document) null_node.name = "Test Node" context.document.finish_change_set("Test Change Set") k3d.ui().message("State recording completed successfully ... check the Edit menu.") except: context.document.cancel_change_set() k3d.ui().message("State recording cancelled due to an error!")
#python import k3d # While recording state changes for undo/redo purposes, you must ensure that errors are handled properly! context.document.start_change_set() try: if k3d.ui().query_message("Choose one ...", ["Succeed", "Fail"]) == 2: raise RuntimeError("Simulated error condition.") null_node = k3d.plugin.create("Null", context.document) null_node.name = "Test Node" context.document.finish_change_set("Test Change Set") k3d.ui().message( "State recording completed successfully ... check the Edit menu.") except: context.document.cancel_change_set() k3d.ui().message("State recording cancelled due to an error!")
#python import k3d selection_node = Document.get_node_by_metadata("inode_selection", "ngui:unique_node", "node_selection") for node in selection_node.selected_nodes(): print "Selected:", node.name import sys sys.stdout.flush() k3d.ui().message("Output sent to console")
#python import k3d k3d.log.debug("***** Selected Nodes *****") selection_nodes = k3d.node.lookup(context.document, "ngui:unique_node", "node_selection") if len(selection_nodes): for node in selection_nodes[0].selected_nodes(): k3d.log.debug(node.name) k3d.log.debug("**************************") k3d.ui().message( "Output sent to the K-3D log ... check your console output, or use Help > Open Log Window." )
#python import k3d k3d.log.critical("This is a critical message!") k3d.log.error("This is an error message!") k3d.log.warning("This is a warning message!") k3d.log.info("This is an informational message!") k3d.log.debug("This is a debug message!") k3d.ui().message("Wrote several messages to the K-3D log ... check your console output, or use Help > Open Log Window to see them.")
def get_node(self, name): node = self.doc.get_node(name) if hasattr(node, "name"): return node return None def get_factory_id(name): temp_node = Document.new_node(name) id_node_factory = temp_node.factory().factory_id() Document.delete_node(temp_node) return id_node_factory chosen_axis = k3d.ui().query_message("Choose the mirroring Axis:", ["X", "Y", "Z"]) keep_original = k3d.ui().query_message("Keep the Original Instance?", ["No", "Yes"]) if chosen_axis == 1: axis = "x" elif chosen_axis == 2: axis = "y" else: axis = "z" if keep_original == 1: #dont keep creation_mode = "reuse" else: #keep creation_mode = "new"