插件开发

将Blender变成一个小型的http的web服务器

一个人想着一个人 提交于 2020-03-01 06:57:14
Blender2.73a支持Python3.4.2,不仅可以定制界面、控制流程。还可以通过python的socket功能实现与其它软件的协同应用,实在是强大。比如可以实现:渲染服务器、集群渲染、外部数据导入、外部算法解算器等等,从而把Blender变为一个超级图形工作网络。 [转自: BlenderCN中文论坛] 第一步:在Blender的文本编辑器里面输入: import http.server import socketserver PORT = 8000 Handler = http.server.SimpleHTTPRequestHandler httpd = socketserver.TCPServer(("", PORT), Handler) print("serving at port", PORT) httpd.serve_forever() 第二步:点击文本编辑器旁的执行。 第三步:打浏览器,输入 http://127.0.0.1:8000 现在你的blender文件夹就在浏览器里面可以浏览了。 来源: oschina 链接: https://my.oschina.net/u/2306127/blog/372545

QtCreator插件开发之学习日记(1) : 多标签插件

Deadly 提交于 2019-12-10 15:51:05
这两天(20120822-20120823)学习了QtCreator插件开发,主要学习资料是DevBean的学习教程 http://www.devbean.info/2012/03/qtcreator-plugin-develop-catalog/ 。不过由于DevBean是以QtCreator v2.2.1来讲解和实现的,我在实践的时候将其代码进行些小修改,成功在最新的v2.6.x上面运行。 主要的目的是想写一个标签页插件,让QtCreator像其他IDE那样用标签页来显示已打开的代码文件,现在标签页都广泛应用于各种软件,像浏览器都是多标签页了,QtCreator竟然没做这个,真是太不方便了。 接下来弄清楚QtCreator的插件架构还有主界面布局,把插件写出来。Fight!! 来源: oschina 链接: https://my.oschina.net/u/240227/blog/74310

Sublime Text 3 插件的汉化、开发、发布方法教程(赵亮-碧海情天-theforevr)

不羁岁月 提交于 2019-12-10 14:02:24
Sublime Text 3 插件的汉化、开发、发布方法教程(2013-12更新) 转载请注明作者和原帖地址。 作者:碧海情天-赵亮(theforever) 前言:这个教程原本是分为三个部分的系列教程,现在合三为一,内容较多,请耐心阅读或根据文章目录挑选感兴趣的部分跳跃阅读。之所以合并和重新编辑,就是为了方便大家一次性观看和保存,在重新编辑过程中,修正了一些格式上的小问题。 Sublime Text(以下简称ST)是一个近年推出的编辑文本和程序代码的优秀工具。只要一打开,你就会意识到它和以往的编辑工具的不同,感觉到它在界面安排上的先进性,更美观也更贴心。如果再通过它的中英文介绍材料简单了解一下它的特性,你就会发现,这是一个在以往的文字和代码编辑器基础上,收集了众多用户最迫切需要的一些实际需求并加以实现的让你惊喜的编辑器。功能贴心,界面时尚,这就是它首先能抓住你的特色,接下来你还会发现它有很多非常有用的插件,包括针对各种编程语言的语法补充和提示、zencode、格式化,以及通用的一些功能插件,而所有这些插件都是开放代码的,可查阅学习,也可根据需要进行修改。而且虽然功能强大,ST本身的安装文件体积还不到十M,在低端机上运行也很流畅。所以这绝对是值得你拥有的编辑工具。 关于使用方法和热键介绍,以及插件安装方法,都有不少专门的文章介绍,可以搜索阅读。 本教程主要讲解: ST3插件的汉化

Blender的插件开发-快速入门

ぐ巨炮叔叔 提交于 2019-12-09 14:54:04
使用Blender创建精彩非凡的作品,你可以是三维图形、创意设计的专家,但不必要成为软件开发的专家。 Blender具有强大的插件扩展功能,不仅可以加载大量的各种功能、效率增强插件,而且稍微懂点python的也可以开发插件。先说说怎么用插件吧。 进入文件-用户偏好设置,在对话框中选择"Addon",然后可以设置自己需要的插件。 或者,ctrl+alt+u,快速进入设置对话框。 Blender的插件机制全部采用Python实现,最新的2.73a版本集成了Python3.4.2的引擎。 注意:Blender的脚本print("hello")函数是输出信息到启动的控制台的,直接运行的时候看不到输出的信息。 但是,为了保持相对独立的运行环境,这个版本与操作系统的python是不同的,是在Blender的上下文环境运行的。因此,在操作系统安装的库,在这里是用不了的,有的库可以在Blender安装运行,但有的库是不行的。但这并没有太大的妨碍,因为Blender里面的库已经足够强大了。 Blender运行、编辑Python的脚本有几种方式: 启动时运行: blender --python /home/me/my_script.py 命令行运行: 拖动3D视图的右上角,向左下,扩展出一个窗口。 选择左下角的立方体,选择Python控制台,然后就可以输入Python脚本了。 编辑器运行:

Blender的插件开发-对象体系探索

让人想犯罪 __ 提交于 2019-12-09 14:50:36
按照python的说法一切皆对象,Blender中亦然。 Blender的根对象是bpy,因此任何模块都需要: import bpy 注意: Blender的脚本print("hello")函数是输出信息到启动的控制台的,直接运行的时候看不到输出的信息。 可以扩展出一个窗口,选择“信息”,就可以把当前所有操作的命令和执行结果都显示在其中,非常方便。 bpy.data 然后,任何对象其实都是数据,因此访问blender的第一个关键对象是bpy.data。现在,我们打开python的命令行窗口: 拖动3D视图的右上角,向左下,扩展出一个窗口。 选择左下角的立方体,选择Python控制台,然后就可以输入Python脚本了。 在其中输入: >>bpy.data.objects <bpy_collection[4], BlendDataObjects> bpy_collection是一个python的词典对象,显示有四个对象(窗口初始是三个对象,我加了一个)。 想知道是哪几个对象?很好办。用一个遍历,如下所示,列出了所有对象的名字: >>> for obj in bpy.data.objects: ... print(obj.name) ... Camera Cube Lamp 融球 通过这种方式,我们可以操作Blender的几乎所有数据。 bpy.context bpy

ElasticSearch的ik分词插件开发

江枫思渺然 提交于 2019-12-06 16:38:27
ik插件,说白了,就是通过封装ik分词器,与ElasticSearch对接,让ElasticSearch能够驱动该分词器。那么,具体怎么与ElasticSearch对接呢?从下往上走,总共3步: 一、封装IK分析器 与ElasticSearch集成,分词器的配置均从ElasticSearch的配置文件读取,因此,需要重载IKAnalyzer的构造方法,然后继承ElasticSearch的类AbstractIndexAnalyzerProvider。代码如下: public class IkAnalyzerProvider extends AbstractIndexAnalyzerProvider<IKAnalyzer> { private final IKAnalyzer analyzer; @Inject public IkAnalyzerProvider(Index index, @IndexSettings Settings indexSettings, Environment env, @Assisted String name, @Assisted Settings settings) { super(index, indexSettings, name, settings); Dictionary.initial(new Configuration(env));

Jquery不同版本共用的解决方案(插件编写)

允我心安 提交于 2019-12-04 19:24:50
最近在为某公司做企业内部UI库,经过研究分析和评审,决定基于Jquery开发,结合Bootstrap插件那简洁,优雅,高效的思想进行插件编写。 但是在编写的过程中遇到一个头疼的问题,就是正在编写的插件是基于Jquery-1.9.1版本开发的,而企业网站使用的是Jquery-1.6.2版本,这就会产生版本兼容性的问题,如果用了高版本的开发,整个网站很可能会瘫痪,但是沿用旧版本的Jquery,就会缺少很多功能,开发效率相对较低。幸好Jquery还有多库共存的方案,那就是Jquery.noconfilct()功能了。看了Jquery的API和查阅了相关资料,都不符合我的实际需要,经过多次的调试之后,终于成功整合了这两个版本 <script type = "text/javascript" src = "jquery-1.9.1.js" ></script> <script type = "text/javascript" src = "customize.js" ></script> <script type = "text/javascript" > var _$ = jQuery . noConflict ( true ); </script> <script type = "text/javascript" src = "jquery-1.6.2.js" ></script>

开源监控软件 Hyperic 的两种插件

怎甘沉沦 提交于 2019-12-04 04:08:26
开源监控工具 Hyperic 提供两种插件,用户交互插件和资源插件。不过到当前的5.8版本,在官方的文档上只剩下了资源插件。 用户交互(HQU)插件 HQU是一个Hyperic HQ的插件框架,允许自定义用户插入的界面,它将会与Hyperic HQ各个方面交互。所有HQU插件都有与整个HQ后端的交互能力,并具有一个快速开发的API。插件是用Groovy写的,一个类似于Java语法的脚本语言。 Groovy能够运行在JVM并能与普通的Java类和库完全交互。HQ许多插件都是在HQU框架内开发的,例如,事件中心,警报中心,Systems Down, Groovy控制台, HQ Health和LiveExec视图都是HQU插件。 HQU设计模式 Model 模型:表示HQ数据和访问/更新的规则;包括HQ Groovy API:提供插件视图,JSON,XML所需的数据 View 视图:GSP Control 控制:Groovy脚本 目录结构 ROOT/hqu /plugin 插件名称 /app控制文件 /etc本地化文件 /lib非HQ的jar文件 /public 其他HTML,CSS,Image /views GSP /templates 重用 部署目录 拷贝HQU 插件到 TOMCAT_HOME/webapps/ROOT/hqu HQU 内部流程图 资源插件 Hyperic

Android插件化开发,初入殿堂

跟風遠走 提交于 2019-12-02 19:34:33
好久没有写博客了,这次准备写写我这几天的研究成果——Android插件化开发框架 CJFrameForAndroid。 背景交代 首先,你需要知道什么是插件化开发。就拿最常见的QQ来说,在第三个界面动态那里有个管理,点开后可以选择很多的增植功能,这里腾讯只放了一些网页应用,那么如果未来想加入一个打飞机游戏,要怎么做?让用户重新安装吗,这就是插件化开发所解决的问题。 用一句话来概括插件式开发:你基本上可以理解为让一个apk不安装也可以被运行。只不过这个运行是有很多限制的运行,所以才叫插件否则就叫病毒了。其实在目前淘宝、百度、腾讯、等都有成熟的动态加载框架,包括apkplug,但是它们都是不开源的。 说一下我认为这项技术的难点: 1、一个未被安装的apk正常情况无法被运行;2、这个apk的资源没办法被引用;3、这个apk的界面就算被加载,也没办法与用户交互。 最初查遍了资料,第一点好解决,在Android中有一个dexClassLoad类加载器,大家应该明白了,就是通过反射加载一个类来运行。第二点,网上有两种方法:可以将插件的资源放到sd卡上通过流的形式读取,不过也有人反对说用流读取会有问题,通配性太差;一种比较好的解决办法是将apk中的资源复制一份到当前app内,然后就可以加载了。这种办法是不错,但是用户每下载一次插件就复制一份,久而久之,对空间要求太高了,还有就是第三点也没办法解决