主要是基于达索软件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. css实现单行,多行文本溢出显示省略号……

    1.单行文本溢出显示省略号我们可以直接用text-overflow: ellipsis 实现方法: <style> .div_text{width: 300px; padding:10px ...

  2. 隐马尔科夫模型python实现简单拼音输入法

    在网上看到一篇关于隐马尔科夫模型的介绍,觉得简直不能再神奇,又在网上找到大神的一篇关于如何用隐马尔可夫模型实现中文拼音输入的博客,无奈大神没给可以运行的代码,只能纯手动网上找到了结巴分词的词库,根据此 ...

  3. iOS逆向工程之Reveal工具的安装、配置与使用

    今天博客内容比较简单,不过还是蛮重要的.经常有小伙伴在QQ上私下问我,说博客中是如何使用Reveal查看AppStore中下载应用的UI层级的,那么就在今天这篇博客中作为一个主题来统一的介绍一下吧.虽 ...

  4. 【HanLP】HanLP中文自然语言处理工具实例演练

    HanLP中文自然语言处理工具实例演练 作者:白宁超 2016年11月25日13:45:13 摘要:HanLP是hankcs个人完成一系列模型与算法组成的Java工具包,目标是普及自然语言处理在生产环 ...

  5. 走进缓存的世界(三) - Memcache

    系列文章 走进缓存的世界(一) - 开篇 走进缓存的世界(二) - 缓存设计 走进缓存的世界(三) - Memcache 简介 Memcache是一个高性能的分布式内存对象缓存系统,用于动态Web应用 ...

  6. C#使用GET、POST请求获取结果

    C#使用GET.POST请求获取结果,这里以一个简单的用户登陆为例. 1. 使用GET请求获取结果 1.1 创建LoginHandler.aspx处理页面 protected void Page_Lo ...

  7. BAT“搅局”B2B市场,CIO们准备好了吗?

    "CIO必须灵活构建其所在企业的IT系统,深入业务,以应对日新月异的数字化业务环境."   BAT军团"搅局"B2B市场,CIO们准备好了吗? 庞大的企业级市场 ...

  8. SQL-日期函数

    GETDATE() :取得当前日期时间 DATEADD (datepart , number, date ),计算增加以后的日期.参数date为待计算的日期:参数number为增量:参数datepar ...

  9. IIS启动失败,启动Windows Process Activation Service时,出现错误13:数据无效 ;HTTP 错误 401.2 - Unauthorized 由于身份验证头无效,您无权查看此页

    因为修改过管理员账号的密码后重启服务器导致IIS无法启动,出现已下异常 1.解决:"启动Windows Process Activation Service时,出现错误13:数据无效&quo ...

  10. 【Star CCM+实例】开发一个简单的计算流程.md

    流程开发在CAE过程中处于非常重要的地位. 主要的作用可能包括: 将一些经过验证的模型隐藏在流程中,提高仿真的可靠性 将流程封装成更友好的界面,降低软件的学习周期 流程开发实际上需要做非常多的工作,尤 ...