BlenderCN论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1505|回复: 3

仅选择视角中可见元素 设置个快捷键

[复制链接]
发表于 2012-5-29 12:20:51 | 显示全部楼层 |阅读模式
3D view MESH编辑 Edit模式
有一个用来 半透明显示背面模型元素 的按钮 不太好常规设置快捷键。
介绍个方法,也方便依葫芦画瓢。(改坏的请恢复出厂设置,别问我怎么办,因为此时此刻我改的没问题)

最终效果:
显示切换.gif


按钮图标:

Limit selection to visible

Limit selection to visible

按钮描叙:
Limit selection to visible (clipped with depth buffer)
仅选择视角中可见元素

修改步骤:
1,新建一个默认场景ctrl+N

2,打开设置面板ctrl+alt+U

3,进入Input面板

4,左边快捷键表中,点开3D View -- Mesh

5,Mesh列表下拉,看到+ Add New,点击它

6,将新增的三角设置打开(默认名字为None)

7,想好一个快捷键,先查一下,是否已分配。可用,再设置快捷键,点Keyboard 后的那个A,然后按下快捷键Shift Alt Z,你的定义被记录就成功了一半。

8,将可修改处的none,修改为 wm.context_toggle,成功的话,下面又多出来新的一栏。

9,新增处填写 space_data.use_occlude_geometry

10,save as default。

接下来,在模型编辑的时候ctrl shift z 就可以快速开关 Limit selection to visible 功能了。


该贴已经同步到 nirenyang的微博
发表于 2012-7-18 17:36:47 | 显示全部楼层
支持下
回复 支持 反对

使用道具 举报

发表于 2018-10-12 11:30:22 | 显示全部楼层
本帖最后由 SuiLin 于 2018-10-12 11:32 编辑

你好,你的 wm.context_toggle 和 space_data.use_occlude_geometry 怎么来的?
命令不完整吗,blender python API 内置不都是 bpy. 开头,这很让人混淆,
没有说清楚,或者缺少上文,表示在该文档并没有学习到作者分享的知识

点击3D视图下方的 仅选择视角中可见元素 按钮后
信息窗口中反馈的下面命令信息
  1. bpy.context.space_data.use_occlude_geometry = False
复制代码


  1. bpy.context.space_data.use_occlude_geometry = True
复制代码


然而这些命令并不能在控制台或脚本直接执行,(表示反馈的不是和执行一致有什么存在的意义,这和Maya的命令反馈情况有很大差别)
是缺少什么吗
下面是错误反馈内容
Traceback (most recent call last):
  File "<blender_console>", line 1, in <module>
AttributeError: 'SpaceConsole' object has no attribute 'use_occlude_geometry'

我在API文档查找到 (https://docs.blender.org/api/blender_python_api_current/bpy.types.SpaceView3D.html#bpy.types.SpaceView3D.use_occlude_geometry
)
class bpy.types.SpaceView3D(Space)中有
use_occlude_geometry
    Limit selection to visible (clipped with depth buffer)

然而官方API此处并没有说明使用的方法或者举例。(表示对新手编程不友好)

下面是在源码中找到的内容
  1. # Occlude geometry
  2.             if ((view.viewport_shade not in {'BOUNDBOX', 'WIREFRAME'} and (mode == 'PARTICLE_EDIT' or (mode == 'EDIT' and obj.type == 'MESH'))) or
  3.                     (mode == 'WEIGHT_PAINT')):
  4.                 row.prop(view, "use_occlude_geometry", text="")
复制代码


如果您有时间回复这条内容,帮助类似我这样的BlenderPY编程新手,谢谢你的帮助和分享。

点评

这个命令应该只在3d视图里才行的。你试试 import bpy for area in bpy.context.screen.areas: if area.type == 'VIEW_3D': area.spaces.active.use_occlude_geometry ^= True break  详情 回复 发表于 2018-10-12 12:20
回复 支持 反对

使用道具 举报

发表于 2018-10-12 12:20:48 | 显示全部楼层
SuiLin 发表于 2018-10-12 11:30
你好,你的 wm.context_toggle 和 space_data.use_occlude_geometry 怎么来的?
命令不完整吗,blender pyt ...

这个命令应该只在3d视图里才行的。你试试
  1. import bpy
  2. for area in bpy.context.screen.areas:
  3.     if area.type == 'VIEW_3D':
  4.         area.spaces.active.use_occlude_geometry ^= True
  5.         break
复制代码

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

Blender最新中文教学视频|Blender头条|小黑屋|手机版|Archiver|Blender中国 ( 蜀ICP备17002929号 )360网站安全检测平台

GMT+8, 2018-11-19 07:40 , Processed in 0.019448 second(s), 24 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表