Example #1
0
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
Example #2
0
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
Example #3
0
#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)

Example #4
0
#python

import k3d

k3d.ui().message("Howdy, World!");

Example #5
0
#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.")

Example #7
0
#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")
Example #8
0
# 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."
)
Example #9
0
#python
import k3d

k3d.ui().message("Howdy,")

recursive_script = """#python
import k3d
k3d.ui().message("World!")
"""

k3d.script.execute(recursive_script)

Example #10
0
#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.")
Example #11
0
	# 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

Example #12
0
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")

Example #13
0
#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))

Example #14
0
#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):", "")
Example #15
0
#python
import k3d

k3d.ui().message("Howdy,")

recursive_script = """#python
import k3d
k3d.ui().message("World!")
"""

k3d.execute_script(recursive_script)

Example #16
0
#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")

Example #17
0
#python

import k3d

factories = k3d.plugin.factory.lookup()

k3d.ui().message("There are " + str(len(factories)) + " K-3D plugins installed.")

Example #18
0
		
	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)
Example #19
0
#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!")
Example #20
0
#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!")
Example #21
0
#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")

Example #22
0
#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."
)
Example #23
0
#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.")
Example #24
0
    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"