当前位置: 首页 > news >正文

南通给公司做网站的企业文化建设的重要性

南通给公司做网站的,企业文化建设的重要性,qq电脑版网页登录入口,网站设计公司怎么样https://www.patreon.com/posts/python-spoonfed-31572219 2019年11月15日 利用上一课的选择函数#xff0c;我们现在可以拼凑出一些脚本#xff08;有一些事情我们还没有解释#xff0c;但应该很容易理解#xff09;。以下代码将允许您选择当前所选对象的父对象、顶级对…https://www.patreon.com/posts/python-spoonfed-31572219 2019年11月15日 利用上一课的选择函数我们现在可以拼凑出一些脚本有一些事情我们还没有解释但应该很容易理解。以下代码将允许您选择当前所选对象的父对象、顶级对象、同级对象、表兄弟对象或子对象。这些功能的一部分过去已包含在 Cineversity 中但在这里您可以获取它们包括源代码。 我们先从Parent的选择开始。PS_SelectObject_Parent.py import c4ddef SetActiveObjects(objlist):cleared Falsefor obj in objlist:if not cleared:doc.SetActiveObject(obj, c4d.SELECTION_NEW)cleared Trueelse:doc.SetActiveObject(obj, c4d.SELECTION_ADD)def main():if doc None: returnactiveObjectList doc.GetActiveObjects(c4d.GETACTIVEOBJECTFLAGS_CHILDREN)if not activeObjectList: returnnewSelection []for obj in activeObjectList:if obj.GetUp() ! None:newSelection [obj.GetUp()]else:newSelection [obj]SetActiveObjects(newSelection)c4d.EventAdd()if __name____main__:main() 在这里我们将函数 SetActiveObjects() 添加到 API 中的选择设置函数数量中。由于给定的函数 只能选择一个BaseObject 一次 因此我们在这里封装SetActiveObject() 并允许传递整个列表。 唯一的技巧是我们必须使用标志 SELECTION_NEW 设置第一个对象以清除 以前的 设置其他每个对象 选择但必须使用SELECTION_ADD 。为此我们使用一个布尔变量 清除 开始 它从False 设置为 True 并在第一次有机会时 保持True 。 此后一直 在函数 main() 循环中迭代当前选择 中我们在for 获取每个对象的直接父对象并将其添加到新选择中。如果没有父对象则将添加对象本身本质上保持选中状态。 newSelection 是一个列表对象。 文字初始化为空列表 它由[ ] 。要添加对象我们首先通过再次将对象括在方括号中来创建一个列表其中包含该对象中的一项。 将此迷你列表附加到现有列表 可以使用扩展赋值 。 第二个脚本基本相同但它不是寻找直接父代而是寻找最顶层的祖先。这是在 while 循环中完成的 PS_SelectObject_Top.py import c4ddef SetActiveObjects(objlist):cleared Falsefor obj in objlist:if not cleared:doc.SetActiveObject(obj, c4d.SELECTION_NEW)cleared Trueelse:doc.SetActiveObject(obj, c4d.SELECTION_ADD)def main():if doc None: returnactiveObjectList doc.GetActiveObjects(c4d.GETACTIVEOBJECTFLAGS_CHILDREN)if not activeObjectList: returnnewSelection []for obj in activeObjectList:while obj.GetUp() ! None:obj obj.GetUp()newSelection [obj]SetActiveObjects(newSelection)c4d.EventAdd()if __name____main__:main() 我们不需要额外的情况来包含 obj 请注意如果没有祖先 循环 本身。在这种情况下while 结束 本身在obj 处 。 如果我们在最初的选择中有两个兄弟姐妹会怎样难道我们不会为两者获得相同的父级或祖先并且有一个包含重复元素的列表可供选择吗 -- 确实如此但没关系将对象设置为活动 两次 不会产生不良影响因此我们不需要经历整理重复项的麻烦。PS_SelectObject_Siblings.py import c4ddef SetActiveObjects(objlist):cleared Falsefor obj in objlist:if not cleared:doc.SetActiveObject(obj, c4d.SELECTION_NEW)cleared Trueelse:doc.SetActiveObject(obj, c4d.SELECTION_ADD)def SelectSiblings(startobj):global newSelectionif startobj None: returnnewSelection [startobj]obj startobjwhile obj.GetPred() ! None:newSelection [obj.GetPred()]obj obj.GetPred()obj startobjwhile obj.GetNext() ! None:newSelection [obj.GetNext()]obj obj.GetNext()def main():global newSelectionif doc None: returnactiveObjectList doc.GetActiveObjects(c4d.GETACTIVEOBJECTFLAGS_CHILDREN)if not activeObjectList: returnnewSelection []for obj in activeObjectList:SelectSiblings(obj)SetActiveObjects(newSelection)c4d.EventAdd()if __name____main__:main() 在第三个脚本选择最初选定对象的所有同级中我们引入了一个新函数 SelectSiblings() 。这将获取一个 BaseObject 并将该对象本身及其所有同级添加到共享全局列表 newSelection 中 。 它通过从参数对象走到列表的前面然后再次从参数对象走到列表的后面来实现这一点。 我们只调用 SelectSiblings 一次因此我们可能直接保留该代码而不是函数调用这种做法也称为 内联代码 。 函数 但是分离出SetActiveObjects 和 SelectSiblings 使代码更清晰、更易于阅读 - 而且我们可以为最后两个脚本重用相同的结构。PS_SelectObject_Cousins.py import c4ddef SetActiveObjects(objlist):cleared Falsefor obj in objlist:if not cleared:doc.SetActiveObject(obj, c4d.SELECTION_NEW)cleared Trueelse:doc.SetActiveObject(obj, c4d.SELECTION_ADD)def SelectSiblings(startobj):global newSelectionif startobj None: returnnewSelection [startobj]obj startobjwhile obj.GetPred() ! None:newSelection [obj.GetPred()]obj obj.GetPred()obj startobjwhile obj.GetNext() ! None:newSelection [obj.GetNext()]obj obj.GetNext()def main():global newSelectionif doc None: returnactiveObjectList doc.GetActiveObjects(c4d.GETACTIVEOBJECTFLAGS_CHILDREN)if not activeObjectList: returnnewSelection []for obj in activeObjectList:if obj.GetUp() None:SelectSiblings(obj)else:parent obj.GetUp()while parent.GetPred() ! None:parent parent.GetPred()while parent ! None:SelectSiblings(parent.GetDown())parent parent.GetNext()SetActiveObjects(newSelection)c4d.EventAdd()if __name____main__:main() 第四个脚本不仅选择兄弟姐妹还选择最初选择的对象的“表兄弟”。在这种情况下“表兄弟”是父母的兄弟姐妹的子对象。为了找到这些代码首先上一层然后从头到尾遍历这一层将所有节点的所有子节点添加到选择中。如果没有父母代码只会添加兄弟姐妹。 第五个也是最后一个选择器脚本选择最初选定对象的子对象PS_SelectObject_Children import c4ddef SetActiveObjects(objlist):cleared Falsefor obj in objlist:if not cleared:doc.SetActiveObject(obj, c4d.SELECTION_NEW)cleared Trueelse:doc.SetActiveObject(obj, c4d.SELECTION_ADD)def main():if doc None: returnactiveObjectList doc.GetActiveObjects(c4d.GETACTIVEOBJECTFLAGS_CHILDREN)if not activeObjectList: returnnewSelection []for obj in activeObjectList:if obj.GetUp() ! None:newSelection [obj.GetUp()]else:newSelection [obj]SetActiveObjects(newSelection)c4d.EventAdd()if __name____main__:main() 这与 Cinema 4D 的内置功能“选择子项”不同因为该功能会选择所有依赖子树直至最低级别。相反脚本仅限于 直接 子对象如果没有子对象甚至是原始对象。 我没有包含像 C4D 的“选择子项”无论如何应该命名为“选择子树”这样的功能因为该功能已经可用。 一点作业如果所需的目标对象父对象、顶级对象、兄弟姐妹、子对象、表兄弟不可用则所有五个脚本都会保留最初选择的对象。您可能想要更改该行为以便不再选择最初选择的对象。在什么情况下这才有意义这容易实现吗
http://www.hkea.cn/news/14462354/

相关文章:

  • 华夏名网网站管理助手ip达1万的网站怎么做
  • wordpress制作小说网站模板下载重庆知道推广网站方法
  • 前端怎么接私活做网站清空wordpress数据库表
  • 电子商务网站建设人才vue 直播网站开发
  • cms 多个网站网站后台管理系统制作
  • 搬瓦工 建网站腾冲市住房和城乡建设局网站
  • 北京网站建设还公司dz做分类网站
  • 哪个网站做设计兼职不用压金网站域名销售
  • 网站建设 排行大型网站的例子
  • 平安保险网站百度城市服务小程序
  • 新产品推广方案策划论坛如何做seo
  • 专门做ppt的网站叫什么河北石家庄最新数据消息
  • 企业网站备案系统杭州余杭区网站建设
  • 网站建设配置wordpress不用帐号
  • 东莞网站优化seo网站网页进口
  • 开网站购买的服务器放自己家还是放别人那里ps网页设计流程
  • 电子商务网站模块软件开发工具也叫
  • 畜牧养殖企业网站源码中国协会网站建设方案
  • 网站后台模板制作流程厦门seo专业培训学校
  • 网站基本配置中国公司排行榜前十名
  • 电信专线可以做网站吗贵阳建站推广公司
  • 网站建设怎么做成都网站建设服务密需湖南岚鸿案例
  • 成品超市网站设计制作植物标识牌
  • 手机端网站用dw怎么做旅游网站设计与分析
  • 做什么网站网站建设有哪些问题
  • 做网站空间费用是什么意思影视公司起名
  • 大力推进网站集约化建设wordpress api开发文档下载
  • 佛山企业网站搭建公司WordPress美图主题
  • 个人网站要有什么Wordpress现有数据库表
  • 可以用手机建设网站吗专业做涂料网站