基于Composer Player 模型加载和相关属性设置
主要是基于达索软件Composer Player、的基础上做些二次开发。
public class ComposerToolBarSetting
{
public bool AntiAliasingOnIdle { get; set; }//抗锯齿化
public bool AssySelectionMode { get; set; }//使能选择装配树
public bool AssySelectionModeViewportIndicator { get; set; }//装配树选择模式
public bool AutoKeyMode { get; set; }//使能自动键
public bool AutoPlay { get; set; } //自动播放
public bool BorderMask { get; set; }//在控件窗体应用border
public bool CameraInertia { get; set; }//照相机惯性模式
public bool CameraPlayMode { get; set; }//照相机播放模式
public bool GroundGrid { get; set; }//地面
public bool LoopPlay { get; set; }//循环播放
public bool NoHighlight { get; set; }//高亮显示
public bool RemoveMeasurementCommands { get; set; }//移除测量工具条
public bool RenderGroundShadow { get; set; }//渲染地面阴影
public bool ShowAnnotationToolBar { get; set; }//注释工具条
public bool ShowAssemblyTreeBar { get; set; }//装配树
public bool ShowBomTreeBar { get; set; }//BOM树
public bool ShowCameraToolBar { get; set; }//照相机工具条
public bool ShowCameraViewToolBar { get; set; }//照相机视图工具条
public bool ShowCollabToolBar { get; set; }//协同工具条
public bool ShowCollabTreeBar { get; set; }//协同树
public bool ShowCuttingPlaneToolBar { get; set; }//剖切工具条
public bool ShowGeometryToolBar { get; set; }//几何图形工具条
public bool ShowMain3DToolBar { get; set; }//主要3D工具条
public bool ShowMarkerBar { get; set; }//标记工具条
public bool ShowMeasurementToolBar { get; set; }//测量工具条
public bool ShowPaper { get; set; }//显示白纸页面
public bool ShowPropertyBar { get; set; }//属性
public bool ShowRedlineToolBar { get; set; }//红线工具条
public bool ShowRenderToolBar { get; set; }//渲染工具条
public bool ShowStandardToolBar { get; set; }//标准工具条
public bool ShowStatusBar { get; set; }//状态条
public bool ShowTimelineBar { get; set; }//时间线
public bool ShowTreesBar { get; set; }//树
public bool ShowViewBar { get; set; }//视图条
public bool ShowVisibilityToolBar { get; set; }//可见性工具条
public bool UseGUID { get; set; }//是否返回GUID }
Composer 工具栏
public class ComposerManager
{
/// <summary>
/// 设置控件的属性
/// </summary>
/// <param name="player">控件的名字</param>
public static void SetComposerPlayerToolsBar(AxDS3DVIAPlayerActiveXLib.AxDS3DVIAPlayerActiveX player)
{
player.AntiAliasingOnIdle = GetCompserPlayerToolBar().AntiAliasingOnIdle;
player.AssySelectionMode = GetCompserPlayerToolBar().AssySelectionMode;
player.AssySelectionModeViewportIndicator = GetCompserPlayerToolBar().AssySelectionModeViewportIndicator;
player.AutoKeyMode = GetCompserPlayerToolBar().AutoKeyMode;
player.AutoPlay = GetCompserPlayerToolBar().AutoPlay;
player.BorderMask = GetCompserPlayerToolBar().BorderMask;
player.CameraInertia = GetCompserPlayerToolBar().CameraInertia;
player.CameraPlayMode = GetCompserPlayerToolBar().CameraPlayMode;
player.GroundGrid = GetCompserPlayerToolBar().GroundGrid;
player.LoopPlay = GetCompserPlayerToolBar().LoopPlay;
player.NoHighlight = GetCompserPlayerToolBar().NoHighlight;
player.RemoveMeasurementCommands = GetCompserPlayerToolBar().RemoveMeasurementCommands;
player.RenderGroundShadow = GetCompserPlayerToolBar().RenderGroundShadow;
player.ShowAnnotationToolBar = GetCompserPlayerToolBar().ShowAnnotationToolBar;
player.ShowAssemblyTreeBar = GetCompserPlayerToolBar().ShowAssemblyTreeBar;
player.ShowBOMTreeBar = GetCompserPlayerToolBar().ShowBomTreeBar;
player.ShowCameraToolBar = GetCompserPlayerToolBar().ShowCameraToolBar;
player.ShowCameraViewToolBar = GetCompserPlayerToolBar().ShowCameraViewToolBar;
player.ShowCollabToolBar = GetCompserPlayerToolBar().ShowCollabToolBar;
player.ShowCollabTreeBar = GetCompserPlayerToolBar().ShowCollabTreeBar;
player.ShowCuttingPlaneToolBar = GetCompserPlayerToolBar().ShowCuttingPlaneToolBar;
player.ShowGeometryToolBar = GetCompserPlayerToolBar().ShowGeometryToolBar;
player.ShowMain3DToolBar = GetCompserPlayerToolBar().ShowMain3DToolBar;
player.ShowMarkerBar = GetCompserPlayerToolBar().ShowMarkerBar;
player.ShowMeasurementToolBar = GetCompserPlayerToolBar().ShowMeasurementToolBar;
player.ShowPaper = GetCompserPlayerToolBar().ShowPaper;
player.ShowPropertyBar = GetCompserPlayerToolBar().ShowPropertyBar;
player.ShowRedlineToolBar = GetCompserPlayerToolBar().ShowRedlineToolBar;
player.ShowRenderToolBar = GetCompserPlayerToolBar().ShowRenderToolBar;
player.ShowStandardToolBar = GetCompserPlayerToolBar().ShowStandardToolBar;
player.ShowStatusBar = GetCompserPlayerToolBar().ShowStatusBar;
player.ShowTimelineBar = GetCompserPlayerToolBar().ShowTimelineBar;
player.ShowTreesBar = GetCompserPlayerToolBar().ShowTreesBar;
player.ShowViewBar = GetCompserPlayerToolBar().ShowViewBar;
player.ShowVisibilityToolBar = GetCompserPlayerToolBar().ShowVisibilityToolBar;
player.UseGUID = GetCompserPlayerToolBar().UseGUID;
} /// <summary>
/// 将字符类型转化为Boolen类型
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
static bool StringToBool(string str)
{
bool result = false;
if (str != null)
{
if (str == "false")
{
result = false;
}
else if (str == "true")
{
result = true;
}
}
return result;
} /// <summary>
/// 将Boolen类型转化为字符类型
/// </summary>
/// <param name="result"></param>
/// <returns></returns>
static string BoolToString(bool result)
{
string str = "";
if (result)
{
str = "true";
}
else
{
str = "false";
}
return str;
} /// <summary>
/// 读取app.config里的key对应的值,并赋值给ComposerToolBarSetting类
/// </summary>
/// <returns></returns>
public static ComposerToolBarSetting GetCompserPlayerToolBar()
{
ComposerToolBarSetting set = new ComposerToolBarSetting(); set.AntiAliasingOnIdle = StringToBool(AppConfigManager.GetValue("AntiAliasingOnIdle", ConfigFileType.AppConfig));
set.AssySelectionMode=StringToBool(AppConfigManager.GetValue("AssySelectionMode",ConfigFileType.AppConfig));
set.AssySelectionModeViewportIndicator = StringToBool(AppConfigManager.GetValue("AssySelectionModeViewportIndicator", ConfigFileType.AppConfig));
set.AutoKeyMode = StringToBool(AppConfigManager.GetValue("AutoKeyMode", ConfigFileType.AppConfig));
set.AutoPlay = StringToBool(AppConfigManager.GetValue("AutoPlay", ConfigFileType.AppConfig));
set.BorderMask = StringToBool(AppConfigManager.GetValue("BorderMask", ConfigFileType.AppConfig));
set.CameraInertia = StringToBool(AppConfigManager.GetValue("CameraInertia", ConfigFileType.AppConfig));
set.CameraPlayMode = StringToBool(AppConfigManager.GetValue("CameraPlayMode", ConfigFileType.AppConfig));
set.GroundGrid = StringToBool(AppConfigManager.GetValue("GroundGrid", ConfigFileType.AppConfig));
set.LoopPlay = StringToBool(AppConfigManager.GetValue("LoopPlay", ConfigFileType.AppConfig));
set.NoHighlight = StringToBool(AppConfigManager.GetValue("NoHighlight", ConfigFileType.AppConfig));
set.RemoveMeasurementCommands = StringToBool(AppConfigManager.GetValue("RemoveMeasurementCommands", ConfigFileType.AppConfig));
set.RenderGroundShadow = StringToBool(AppConfigManager.GetValue("RenderGroundShadow", ConfigFileType.AppConfig));
set.ShowAnnotationToolBar = StringToBool(AppConfigManager.GetValue("ShowAnnotationToolBar", ConfigFileType.AppConfig));
set.ShowAssemblyTreeBar = StringToBool(AppConfigManager.GetValue("ShowAssemblyTreeBar", ConfigFileType.AppConfig));
set.ShowBomTreeBar = StringToBool(AppConfigManager.GetValue("ShowBOMTreeBar", ConfigFileType.AppConfig));
set.ShowCameraToolBar = StringToBool(AppConfigManager.GetValue("ShowCameraToolBar", ConfigFileType.AppConfig));
set.ShowCameraViewToolBar = StringToBool(AppConfigManager.GetValue("ShowCameraViewToolBar", ConfigFileType.AppConfig));
set.ShowCollabToolBar = StringToBool(AppConfigManager.GetValue("ShowCollabToolBar", ConfigFileType.AppConfig));
set.ShowCollabTreeBar = StringToBool(AppConfigManager.GetValue("ShowCollabTreeBar", ConfigFileType.AppConfig));
set.ShowCuttingPlaneToolBar = StringToBool(AppConfigManager.GetValue("ShowCuttingPlaneToolBar", ConfigFileType.AppConfig));
set.ShowGeometryToolBar = StringToBool(AppConfigManager.GetValue("ShowGeometryToolBar", ConfigFileType.AppConfig));
set.ShowMain3DToolBar = StringToBool(AppConfigManager.GetValue("ShowMain3DToolBar", ConfigFileType.AppConfig));
set.ShowMarkerBar = StringToBool(AppConfigManager.GetValue("ShowMarkerBar", ConfigFileType.AppConfig));
set.ShowMeasurementToolBar = StringToBool(AppConfigManager.GetValue("ShowMeasurementToolBar", ConfigFileType.AppConfig));
set.ShowPaper = StringToBool(AppConfigManager.GetValue("ShowPaper", ConfigFileType.AppConfig));
set.ShowPropertyBar = StringToBool(AppConfigManager.GetValue("ShowPropertyBar", ConfigFileType.AppConfig));
set.ShowRedlineToolBar = StringToBool(AppConfigManager.GetValue("ShowRedlineToolBar", ConfigFileType.AppConfig));
set.ShowRenderToolBar = StringToBool(AppConfigManager.GetValue("ShowRenderToolBar", ConfigFileType.AppConfig));
set.ShowStandardToolBar = StringToBool(AppConfigManager.GetValue("ShowStandardToolBar", ConfigFileType.AppConfig));
set.ShowStatusBar = StringToBool(AppConfigManager.GetValue("ShowStatusBar", ConfigFileType.AppConfig));
set.ShowTimelineBar = StringToBool(AppConfigManager.GetValue("ShowTimelineBar", ConfigFileType.AppConfig));
set.ShowTreesBar = StringToBool(AppConfigManager.GetValue("ShowTreesBar", ConfigFileType.AppConfig));
set.ShowViewBar = StringToBool(AppConfigManager.GetValue("ShowViewBar", ConfigFileType.AppConfig));
set.ShowVisibilityToolBar = StringToBool(AppConfigManager.GetValue("ShowVisibilityToolBar", ConfigFileType.AppConfig));
set.UseGUID = StringToBool(AppConfigManager.GetValue("UseGUID", ConfigFileType.AppConfig)); return set;
}
}
Composer 工具栏配置
public class ComposerTreeView
{
//建立xml的路径
string xmlpath = AppDomain.CurrentDomain.BaseDirectory + "21.Xml";
//判断字符是否为中文
static bool IsChinese(string CString)
{
return Regex.IsMatch(CString, @"^[\u4e00-\u9fa5]+$");
}
/// <summary>
/// 创建头结点和下一级节点
/// </summary>
/// <param name="player">控件的名称</param>
/// <param name="treeview">TreeView的名字</param>
public static void CreateFirstNode(AxDS3DVIAPlayerActiveXLib.AxDS3DVIAPlayerActiveX player,TreeView treeview)
{
var rnode = new TreeNode();
string rootstr = player.GetAssyRoot();
string[] RArray = rootstr.Split('"');
foreach (var item in RArray)
{
if ( item.Length == && IsChinese(item) )
{
TreeNode node = new TreeNode();
node.Text = item;
rnode.Nodes.Add(node);
}
}
treeview.Nodes.Add(rnode);
} /// <summary>
/// 建立xml信息
/// </summary>
/// <param name="xmlname">xml文件的名字</param>
private void FillXml(string xmlname)
{
if (File.Exists(xmlpath))
{
File.Delete(xmlpath);
}
XElement root = XElement.Parse(xmlname);
root.Save(xmlpath);
} /// <summary>
/// 将子节点添加到父节点
/// </summary>
/// <param name="tnode">子节点</param>
/// <param name="parentnode">父节点</param>
private void addTreeNode(TreeNode tnode, TreeNode parentnode)
{
parentnode.Nodes.Add(tnode);
} List<TreeNode> nodelist = new List<TreeNode>();
/// <summary>
///返回选中节点下的子节点名字集合
/// </summary>
/// <param name="player">控件的名字</param>
/// <param name="treeview">TreeView的名字</param>
/// <returns></returns>
private List<TreeNode> createTreeNode(AxDS3DVIAPlayerActiveXLib.AxDS3DVIAPlayerActiveX player, TreeView treeview)
{
List<string> childlist = new List<string>();
string childname = treeview.SelectedNode.Text;
if (childname != null)
{
string childrenstr = player.GetAssyChild(CLitSelectionName(childname));
FillXml(childrenstr);
XDocument doc = XDocument.Load(xmlpath);
var query = from fx in doc.Descendants("CLitModifiable")
select new
{
NodeName = fx.Attribute("Name").Value
};
foreach (var item in query)
{
TreeNode node1 = new TreeNode();
node1.Text = item.NodeName;
if (!nodelist.Contains(node1))
{
nodelist.Add(node1);
}
}
}
return nodelist;
} /// <summary>
/// 准备好选择对象的字符串
/// </summary>
/// <param name="name">指定对象的名字</param>
/// <returns></returns>
static string CLitSelectionName(string name)
{
return "<CLitSelection Name='' ><CLitModifiable Name='" + name + "'/></CLitSelection>";
} /// <summary>
/// 根据点击选择的节点,查询出其下面的子节点信息
/// </summary>
/// <param name="player"></param>
/// <param name="treeview"></param>
public void TreeViewAfterSelect(AxDS3DVIAPlayerActiveXLib.AxDS3DVIAPlayerActiveX player, TreeView treeview)
{
nodelist.Clear();
nodelist = createTreeNode(player, treeview);
var parent = from fx in nodelist select fx;
treeview.SelectedNode.Nodes.Clear();
foreach (var item in parent)
{
TreeNode node = new TreeNode();
node.Text = item.Text;
if (!treeview.SelectedNode.Nodes.Contains(node))
{
treeview.SelectedNode.Nodes.Add(node);
}
}
treeview.ExpandAll();
}
}
自定义结构树设置


基于Composer Player 模型加载和相关属性设置的更多相关文章
- 【spring bean】spring中bean的懒加载和depends-on属性设置
项目结构如下: ResourceBean.java代码: package com.it.res; import java.io.File; import java.io.FileNotFoundExc ...
- 【Dojo 1.x】笔记7 配置对象dojoConfig的内容1:has属性、加载器的属性
说完了出身,即出身自dojo/_base/目录下的config模块,那就要好好讲讲这对象有什么可以写的属性了. 1. has属性 官方说是用于更好的特征检测的,具体有什么用现在还不得知. 例如: &l ...
- composer 实现自动加载原理
简介 一般在框架中都会用到composer工具,用它来管理依赖.其中composer有类的自动加载机制,可以加载composer下载的库中的所有的类文件.那么composer的自动加载机制是怎么实现的 ...
- DirectX11 With Windows SDK--19 模型加载:obj格式的读取及使用二进制文件提升读取效率
前言 一个模型通常是由三个部分组成:网格.纹理.材质.在一开始的时候,我们是通过Geometry类来生成简单几何体的网格.但现在我们需要寻找合适的方式去表述一个复杂的网格,而且包含网格的文件类型多种多 ...
- 深入解析 composer 的自动加载原理 (转)
深入解析 composer 的自动加载原理 转自:https://segmentfault.com/a/1190000014948542 前言 PHP 自5.3的版本之后,已经重焕新生,命名空间.性状 ...
- OpenGL OBJ模型加载.
在我们前面绘制一个屋,我们可以看到,需要每个立方体一个一个的自己来推并且还要处理位置信息.代码量大并且要时间.现在我们通过加载模型文件的方法来生成模型文件,比较流行的3D模型文件有OBJ,FBX,da ...
- Composer 的自动加载机制
Composer 的自动加载机制 Composer 提供了四种自动加载方式,分别是 PSR-0.PSR-4.生成 classmap 以及之间包含 files. PSR-0 方式 PSR-0 方式要求目 ...
- 详解composer的自动加载机制
composer是一个用PHP开发的用来管理项目依赖的工具,当你在项目中声明了依赖关系后,composer可以自动帮你下载和安装这些依赖库,并实现自动加载代码. 安装composer composer ...
- CC模型加载太慢?一招破解!
伴随无人机性能的提升,单个项目涉及到的倾斜摄影数据范围不断扩大,模型的数据量越来越大,在同配置机器上的显示速度也相应的越来越慢,那么如何在不升级配置的情况下提升模型的加载速度呢? 01 百GB倾斜摄影 ...
随机推荐
- Tcp/ip 报文解析
在编写网络程序时,常使用TCP协议.那么一个tcp包到底由哪些东西构成的呢?其实一个TCP包,首先需要通过IP协议承载,而IP报文,又需要通过以太网传送.下面我们来看看几种协议头的构成 一 .Ethe ...
- 猫哥网络编程系列:HTTP PEM 万能调试法
注:本文内容较长且细节较多,建议先收藏再阅读,原文将在 Github 上维护与更新. 在 HTTP 接口开发与调试过程中,我们经常遇到以下类似的问题: 为什么本地环境接口可以调用成功,但放到手机上就跑 ...
- 逆天通用水印支持Winform,WPF,Web,WP,Win10。支持位置选择(9个位置 ==》[X])
常用技能:http://www.cnblogs.com/dunitian/p/4822808.html#skill 逆天博客:http://dnt.dkil.net 逆天通用水印扩展篇~新增剪贴板系列 ...
- angular2系列教程(十一)路由嵌套、路由生命周期、matrix URL notation
今天我们要讲的是ng2的路由的第二部分,包括路由嵌套.路由生命周期等知识点. 例子 例子仍然是上节课的例子:
- zookeeper源码分析之二客户端启动
ZooKeeper Client Library提供了丰富直观的API供用户程序使用,下面是一些常用的API: create(path, data, flags): 创建一个ZNode, path是其 ...
- 步入angularjs directive(指令)--点击按钮加入loading状态
今天我终于鼓起勇气写自己的博客了,激动与害怕并存,希望大家能多多批评指导,如果能够帮助大家,也希望大家点个赞!! 用angularjs 工作也有段时间了,总体感觉最有挑战性的还是指令,因为没有指令的a ...
- 基于RN开发的一款视频配音APP(开源)
在如今React.ng.vue三分天下的格局下,不得不让自己加快学习的脚步.虽然经常会陷入各种迷茫,学得越多会发现不会的东西也被无限放大,不过能用新的技术作出一些小项目小Demo还是会给自己些许自信与 ...
- GitHub管理代码-随笔
公司一直用的SVN进行项目管理,平时便自己折腾了下Git,这里做下GitHub的最简单的记录... 在git上创建仓库等就免谈了,网上也有好多教程,直接从创建之后记录: 在github的readme文 ...
- RMS:Microsoft Office检测到您的信息权限管理配置有问题。有关详细信息,请与管理员联系。(转)
原文:https://zhidao.baidu.com/question/435088233.html RMS有两种方式: 1.使用微软的服务器,这个是连接到微软的服务器上面做权限控制,在今年5月份之 ...
- [PHP源码阅读]array_push和array_unshift函数
在PHP中,在数组中添加元素也是一种很常用的操作,分别有在数组尾部和头部添加元素,看看PHP内部是如何实现数组插入的操作. 我在github有对PHP源码更详细的注解.感兴趣的可以围观一下,给个sta ...