Twaver的mono-desiner导出的json文件解析
以画的交换机为例,其他大概都差不多。
利用Twaver做出交换机模型如图1所示,其中,每一个端口都是一个单独的对象.具体Twaver操作流程参见网址:http://twaver.servasoft.com/doc 中的操作指南。
将做好的模型导出为json格式的文件。下面将以图一所示的交换机为例对json文件进行简单解析。如图二所示为图一交换机的所导出的json文件的简单结构。
首先,所导出的json文件为一个json对象,里面包含有两个数组为primitives(原始)和assembles(装配) ,primitives(原始)里面又包含了16个对象。请注意,0~16这些数字只是表示画图是的拖入的先后顺序,并不是其OID。每个对象的OID包含在每个对象的内部。例如0只是表示的是整个大的叫交换机体,而从1~16表示的是每个端口对象。
继续展开名字为“0”的对象,如图3所示。对象内各字段具体说明见表一。
表一:
对象 |
字段 |
描述 |
Id(str) |
表示该对象的id,由Twaver工具自己生成的随机生成,是唯一的 |
|
scale(obj) |
x , y , |
表示该对象的比例,默认均为1 |
pos(obj) |
x , y , |
表示的是该对象的中心坐标位置,默认均为0 |
rot(obj) |
x , y , |
表示该对象旋转的角度 |
size(obj) |
x , y , |
表示大小 |
className(str) |
表示该对象的对象名,不唯一 |
|
ambient(arr) |
(str) |
六个面分别代表六个参数,表示各个面的光照环境 |
color(arr) |
(str) |
表示各个面的颜色 |
dt(arr) |
(str) |
表示各个面的贴图路径 |
Transparent(arr) |
(boolean) |
表示各个面是否是透明的,默认为false |
types(arr) |
(str) |
默认为phong |
visible(arr) |
(boolean) |
表示是否可视,默认为true。与transparent相反。 |
opacity(arr) |
(Num) |
设置一个元素了透明度级别。默认为1. |
flipX(arr) |
(boolean) |
表示X轴方向翻转,默认为false. |
flipY(arr) |
(boolean) |
表示Y轴方向翻转,默认为false. |
specularStrength(arr) |
(str) |
表示镜面强度。默认均为1 |
polygonOffset(arr) |
(boolean) |
是否设置多边形偏移参数,默认false |
polygonOffsetFactor(arr) |
(str) |
表示多边形偏移因子。需设置polygonOffset为true. |
polygonOffsetUnits(arr) |
(str) |
表示多边形偏移量单位。需设置polygonOffset为true. |
scaleValue(str) |
刻度值 |
|
oid(str) |
自定义的对象id,方便编程使用 |
其他的对象属性基本类似于表一,没有太大变化。
下面介绍assembles(装配)数组中的对象。该数组是指将上一数组中的各个对象组合在一起。如图4所示。
该数组包含一个对象为对象“0”,即上面所提到的交换机机体,可以通过该对象的第一个字段(id)与上一个数组中的id比较来唯一识别。“children”表示装配在该对象上的其他对象,如图5所示。0~16 这些对象都是“0”的children,由图”0”对象的属性“ishost”=true可知,它便是宿主,所有其他的对象要装配在该对象之上;pos表示该对象的位置。而对于非寄主类的对象来说,例如对象“1”则它的属性包括‘id’,‘oid’和‘pos’字段了。其他的对象与都一样。继续说明图4中的字段 “assembleSize”对象表示组合尺寸。
Twaver的mono-desiner导出的json文件解析的更多相关文章
- Elasticsearch集群状态脚本及grafana监控面板导出的json文件
脚本文件: #!/usr/bin/env python import datetime import time import urllib import json import urllib2 imp ...
- grafana日志分析界面及导出的json文件
日志分析面板导出的json文件,效果图如下: 下载地址:http://files.cnblogs.com/files/xiaoming279/%E9%9D%A2%E6%9D%BF.zip 主机面板 主 ...
- Golang Json文件解析为结构体工具-json2go
代码地址如下:http://www.demodashi.com/demo/14946.html 概述 json2go是一个基于Golang开发的轻量json文件解析.转换命令行工具,目前支持转换输出到 ...
- PHP JSON文件解析并获取key、value,判断key是否存在
/****************************************************************************** * PHP JSON文件解析并获取key ...
- 【微信】微信小程序 微信开发工具中新创建的json文件,编译报错VM1781:2 pages/module/module.json 文件解析错误 SyntaxError: Unexpected end of JSON input
如果新创建报错:编译报错VM1781:2 pages/module/module.json 文件解析错误 SyntaxError: Unexpected end of JSON input 解决方法 ...
- Json文件解析(下)
Json文件解析(下) 代码地址:https://github.com/nlohmann/json 从STL容器转换 任何序列容器(std::array,std::vector,std::dequ ...
- Json文件解析(上)
Json文件解析(上) 代码地址:https://github.com/nlohmann/json 自述文件 alt=GitHub赞助商 data-canonical-src="https: ...
- json 文件解析与应用
第一步:首先弄一个 json 文件 我这里成为 config.json 内容如下 { ": { , "desc":"中华人民共和国" }, &qu ...
- json文件解析
场景 读取json文件,读取子域名扫描结果 实现 >>> import json >>> with open("C:\\Users\\Windows32\ ...
随机推荐
- 原生 JS 实现扫雷 (分析+代码实现)
阅读这篇文章需要掌握的基础知识:Html5.CSS.JavaScript 在线Demo:查看 扫雷规则 在写扫雷之前,我们先了解下它的游戏规则 ● 扫雷是一个矩阵,地雷随机分布在方格上. ● 方格上的 ...
- ExcludeClipRect区域裁剪问题
CPaintDC dc(this); CRect rt1; CPen newPen; newPen.CreatePen(PS_SOLID,1,RGB(0,0,0)); CPen *pOldPen = ...
- 【读书笔记 - Effective Java】02. 遇到多个构造器参数时要考虑用构建器
类有多个可选参数的解决方案: 1. 重叠构造器模式可行,但是当有许多参数的时候,客户端代码会很难编写,并且仍然较难以阅读. 2. JavaBeans模式,调用一个无参构造器来创造对象,然后调用sett ...
- 我的Tmux学习笔记
0. 修改指令前缀 // ~/.tmux.conf ubind C-b set -g prefix C-a 1. 新建会话 tmux tmux new -s session-name // 可以设置会 ...
- Java开发小技巧(六):使用Apache POI读取Excel
前言 在数据仓库中,ETL最基础的步骤就是从数据源抽取所需的数据,这里所说的数据源并非仅仅是指数据库,还包括excel.csv.xml等各种类型的数据接口文件,而这些文件中的数据不一定是结构化存储的, ...
- python 正则表达式 符号及其定义
较好的文章https://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html
- Java 高级应用编程 第二章 集合
一.Java 中的集合类 1.集合概述 Java中集合类是用来存放对象的 集合相当于一个容器,里面包容着一组对象 —— 容器类 其中的每个对象作为集合的一个元素出现 Java API提供的集合类位于j ...
- FPGA学习之路——PLL的使用
锁相环(PLL)主要用于频率综合,使用一个 PLL 可以从一个输入时钟信号生成多个时钟信号. PLL 内部的功能框图如下图所示: 在ISE中新建一个PLL的IP核,设置四个输出时钟,分别为25MHz. ...
- 20145234黄斐《信息安全系统设计基础》第八周(Linux下vim相关命令)
Linux下vim相关命令 在编辑程序时经常使用vim,所以记住一些常用的指令还是很有必要的 文件命令 vim file 打开单个文件vim file vim file1 file2 file3 .. ...
- JavaScript---复选框反选全选
Script <script type="text/javascript"> /*直接使用document.getElementsByName("c1&quo ...