主要是基于达索软件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 模型加载和相关属性设置的更多相关文章

  1. 【spring bean】spring中bean的懒加载和depends-on属性设置

    项目结构如下: ResourceBean.java代码: package com.it.res; import java.io.File; import java.io.FileNotFoundExc ...

  2. 【Dojo 1.x】笔记7 配置对象dojoConfig的内容1:has属性、加载器的属性

    说完了出身,即出身自dojo/_base/目录下的config模块,那就要好好讲讲这对象有什么可以写的属性了. 1. has属性 官方说是用于更好的特征检测的,具体有什么用现在还不得知. 例如: &l ...

  3. composer 实现自动加载原理

    简介 一般在框架中都会用到composer工具,用它来管理依赖.其中composer有类的自动加载机制,可以加载composer下载的库中的所有的类文件.那么composer的自动加载机制是怎么实现的 ...

  4. DirectX11 With Windows SDK--19 模型加载:obj格式的读取及使用二进制文件提升读取效率

    前言 一个模型通常是由三个部分组成:网格.纹理.材质.在一开始的时候,我们是通过Geometry类来生成简单几何体的网格.但现在我们需要寻找合适的方式去表述一个复杂的网格,而且包含网格的文件类型多种多 ...

  5. 深入解析 composer 的自动加载原理 (转)

    深入解析 composer 的自动加载原理 转自:https://segmentfault.com/a/1190000014948542 前言 PHP 自5.3的版本之后,已经重焕新生,命名空间.性状 ...

  6. OpenGL OBJ模型加载.

    在我们前面绘制一个屋,我们可以看到,需要每个立方体一个一个的自己来推并且还要处理位置信息.代码量大并且要时间.现在我们通过加载模型文件的方法来生成模型文件,比较流行的3D模型文件有OBJ,FBX,da ...

  7. Composer 的自动加载机制

    Composer 的自动加载机制 Composer 提供了四种自动加载方式,分别是 PSR-0.PSR-4.生成 classmap 以及之间包含 files. PSR-0 方式 PSR-0 方式要求目 ...

  8. 详解composer的自动加载机制

    composer是一个用PHP开发的用来管理项目依赖的工具,当你在项目中声明了依赖关系后,composer可以自动帮你下载和安装这些依赖库,并实现自动加载代码. 安装composer composer ...

  9. CC模型加载太慢?一招破解!

    伴随无人机性能的提升,单个项目涉及到的倾斜摄影数据范围不断扩大,模型的数据量越来越大,在同配置机器上的显示速度也相应的越来越慢,那么如何在不升级配置的情况下提升模型的加载速度呢? 01 百GB倾斜摄影 ...

随机推荐

  1. iOS总结_UI层自我复习总结

    UI层复习笔记 在main文件中,UIApplicationMain函数一共做了三件事 根据第三个参数创建了一个应用程序对象 默认写nil,即创建的是UIApplication类型的对象,此对象看成是 ...

  2. 微信小程序体验(2):驴妈妈景区门票即买即游

    驴妈妈因为出色的运营能力,被腾讯选为首批小程序内测单位.驴妈妈的技术开发团队在很短的时间内完成了开发任务,并积极参与到张小龙团队的内测问题反馈.驴妈妈认为,移动互联网时代,微信是巨大的流量入口,也是旅 ...

  3. solr_架构案例【京东站内搜索】(附程序源代码)

    注意事项:首先要保证部署solr服务的Tomcat容器和检索solr服务中数据的Tomcat容器,它们的端口号不能发生冲突,否则web程序是不可能运行起来的. 一:solr服务的端口号.我这里的sol ...

  4. UniqueIdentifier 数据类型 和 GUID 生成函数

    UniqueIdentifier 数据类型用于存储GUID的值,占用16Byte. SQL Server将UniqueIdentifier存储为16字节的二进制数值,Binary(16),按照特定的格 ...

  5. [C#] 了解过入口函数 Main() 吗?带你用批处理玩转 Main 函数

    了解过入口函数 Main() 吗?带你用批处理玩转 Main 函数 目录 简介 特点 方法的参数 方法的返回值 与批处理交互的一个示例 简介 我们知道,新建一个控制台应用程序的时候,IDE 会同时创建 ...

  6. continue break 区别

    在循环中有两种循环方式 continue , break continue 只是跳出本次循环, 不在继续往下走, 还是开始下一次循环 break  将会跳出整个循环, 此循环将会被终止 count = ...

  7. javaScript中的小细节-script标签中的预解析

    首先介绍预解析,虽然预解析字面意思很好理解,但是却是出坑出的最多的地方,也是bug经常会有的地方,利用好预解析的特性可以解决很多问题,并且提高代码的质量及数量,浏览器在解析代码前会把变量的声明和函数( ...

  8. Ubuntu设置root用户登录图形界面

    Ubuntu默认的是root用户不能登录图形界面的,只能以其他用户登录图形界面.这样就很麻烦,因为权限的问题,不能随意复制删除文件,用gedit编辑文件时经常不能保存,只能用vim去编辑. 解决的办法 ...

  9. Linux硬件IO的优化简介

    Linux硬件IO的优化简介 首先简单介绍下有哪些硬件设备如下(由于硬件种类厂家等各种因素我就不在此多做介绍有兴趣的可以自行学习): 1.CPU:中央处理器,是计算机运算控制的核心部件之一,相当于人的 ...

  10. linux 如何对文件解压或打包压缩

    tar命令用与对文件打包压缩或解压,格式: tar [选项] [文件] 打包并压缩文件: tar -czvf  压缩包名 .tar.gz 解压并展开压缩包: tar -xzvf  压缩包名 .tar. ...