def banner(context):
sc = context.space_data
version_string = sys.version.strip().replace('\n', ' ')
add_scrollback("PYTHON INTERACTIVE CONSOLE %s" % version_string, 'OUTPUT')
add_scrollback("", 'OUTPUT')
add_scrollback("Command History: Up/Down Arrow", 'OUTPUT')
add_scrollback("Cursor: Left/Right Home/End", 'OUTPUT')
add_scrollback("Remove: Backspace/Delete", 'OUTPUT')
add_scrollback("Execute: Enter", 'OUTPUT')
add_scrollback("Autocomplete: Ctrl-Space", 'OUTPUT')
add_scrollback("Zoom: Ctrl +/-, Ctrl-Wheel", 'OUTPUT')
add_scrollback("Builtin Modules: bpy, bpy.data, bpy.ops, "
"bpy.props, bpy.types, bpy.context, bpy.utils, "
"bgl, blf, mathutils",
'OUTPUT')
add_scrollback("Convenience Imports: from mathutils import *; "
"from math import *", 'OUTPUT')
add_scrollback("Convenience Variables: C = bpy.context, D = bpy.data",
'OUTPUT')
add_scrollback("", 'OUTPUT')
sc.prompt = PROMPT
return {'FINISHED'}
# workaround for readline crashing, see: T43491
python类props()的实例源码
def register():
bpy.utils.register_module(__name__)
bpy.types.Scene.atom_cluster = bpy.props.PointerProperty(type=
CLASS_atom_cluster_Properties)
bpy.types.INFO_MT_mesh_add.append(DEF_menu_func)
def find_datablock_in_selection(self, context):
"""
find witch selected object this instance belongs to
provide support for "copy to selected"
"""
selected = [o for o in context.selected_objects]
for o in selected:
props = archipack_fence.datablock(o)
if props:
for part in props.rail_mat:
if part == self:
return props
return None
def update(self, context):
props = self.find_datablock_in_selection(context)
if props is not None:
props.update(context)
def update(self, context, manipulable_refresh=False):
props = self.find_datablock_in_selection(context)
if props is not None:
props.update(context, manipulable_refresh)
def find_in_selection(self, context):
"""
find witch selected object this instance belongs to
provide support for "copy to selected"
"""
selected = [o for o in context.selected_objects]
for o in selected:
props = archipack_roof.datablock(o)
if props:
for part in props.rail_mat:
if part == self:
return props
return None
def update(self, context):
props = self.find_in_selection(context)
if props is not None:
props.update(context)
def update(self, context, manipulable_refresh=False):
props = self.find_in_selection(context)
if props is not None:
props.update(context, manipulable_refresh)
def update(self, context, manipulable_refresh=False):
props = self.find_in_selection(context)
if props is not None:
props.update(context, manipulable_refresh)
def find_in_selection(self, context):
"""
find witch selected object this instance belongs to
provide support for "copy to selected"
"""
selected = [o for o in context.selected_objects]
for o in selected:
props = archipack_roof.datablock(o)
if props and props.boundary == self:
return props
return None
def find_in_selection(self, context):
"""
find witch selected object this instance belongs to
provide support for "copy to selected"
"""
selected = [o for o in context.selected_objects]
for o in selected:
props = archipack_roof.datablock(o)
if props:
for part in props.axis.parts:
if part == self:
return props.axis
return None
def find_in_selection(self, context):
"""
find witch selected object this instance belongs to
provide support for "copy to selected"
"""
selected = [o for o in context.selected_objects]
for o in selected:
props = archipack_roof.datablock(o)
if props and props.axis == self:
return props
return None
def find_in_selection(self, context):
"""
find witch selected object this instance belongs to
provide support for "copy to selected"
"""
selected = [o for o in context.selected_objects]
for o in selected:
props = archipack_slab.datablock(o)
if props:
for part in props.rail_mat:
if part == self:
return props
return None
def update(self, context):
props = self.find_in_selection(context)
if props is not None:
props.update(context)
def find_in_selection(self, context):
"""
find witch selected object this instance belongs to
provide support for "copy to selected"
"""
selected = [o for o in context.selected_objects]
for o in selected:
props = archipack_slab.datablock(o)
if props:
for part in props.parts:
if part == self:
return props
return None
def find_datablock_in_selection(self, context):
"""
find witch selected object this instance belongs to
provide support for "copy to selected"
"""
selected = [o for o in context.selected_objects]
for o in selected:
props = archipack_wall2.datablock(o)
if props:
for part in props.parts:
if part == self:
return props
return None
def update(self, context, manipulable_refresh=False):
if not self.auto_update:
return
props = self.find_datablock_in_selection(context)
if props is not None:
props.update(context, manipulable_refresh)
def preset_values(self):
blacklist = self.blacklist
blacklist.extend(bpy.types.Mesh.bl_rna.properties.keys())
d = getattr(bpy.context.active_object.data, self.preset_subdir)[0]
props = d.rna_type.bl_rna.properties.items()
ret = []
for prop_id, prop in props:
if prop_id not in blacklist:
if not (prop.is_hidden or prop.is_skip_save):
ret.append("d.%s" % prop_id)
return ret
def draw(self, context):
o = context.active_object
props = archipack_reference_point.datablock(o)
if props is None:
return
layout = self.layout
if (o.location - props.location_2d).length < 0.01:
layout.operator('archipack.move_to_3d')
layout.operator('archipack.move_2d_reference_to_cursor')
else:
layout.operator('archipack.move_to_2d')
layout.prop(props, 'symbol_scale')
def execute(self, context):
if context.mode == "OBJECT":
o = context.active_object
props = archipack_reference_point.datablock(o)
if props is None:
return {'CANCELLED'}
props.location_3d = o.location
o.location = props.location_2d
return {'FINISHED'}
else:
self.report({'WARNING'}, "Archipack: Option only valid in Object mode")
return {'CANCELLED'}