文档章节

移动组件

小猛Hit
 小猛Hit
发布于 2017/04/19 11:03
字数 273
阅读 17
收藏 0
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using NXOpen; 
using NXOpen.UF; 

namespace DragComp 
{ 
    public class Drag 
    { 
        private  UFSession theUfSession = UFSession.GetUFSession(); 
        private  Session theSession = Session.GetSession(); 
        public double[] currentMtx44 = new double[16]; 
        private NXOpen.Positioning.ComponentNetwork netWork; 
        private NXOpen.Positioning.ComponentPositioner positioner; 
        public Drag(Part workPart,double[] current) 
        { 
            this.positioner = workPart.ComponentAssembly.Positioner; 
            this.netWork = (NXOpen.Positioning.ComponentNetwork)this.positioner.EstablishNetwork(); 
            currentMtx44 = current; 
        } 

        /// <summary> 
        /// Transes the comps. 
        /// </summary> 
        /// <param name="component">The component.</param> 
        /// <param name="trans">The trans.</param> 
        public void Move(NXOpen.Assemblies.Component component, double[] position) 
        { 
            Array.Resize(ref position, 16); 
            double[] trans = CalTrans(position); 

            Matrix3x3 matrix = new Matrix3x3(); 
            matrix.Xx = trans[0];matrix.Xy = trans[4];matrix.Xz = trans[8]; 
            matrix.Yx = trans[1]; matrix.Yy = trans[5]; matrix.Yz = trans[9]; 
            matrix.Zx = trans[2]; matrix.Zy = trans[6]; matrix.Zz = trans[10]; 
            Vector3d vector = new Vector3d(trans[3], trans[7], trans[11]); 

            if ( netWork == null) 
            { 
                 positioner = Session.GetSession().Parts.Work.ComponentAssembly.Positioner; 
                 netWork = (NXOpen.Positioning.ComponentNetwork) positioner.EstablishNetwork(); 
            } 

             netWork.SetMovingGroup(new NXOpen.Assemblies.Component[] { component }); 
             netWork.NetworkArrangementsMode = NXOpen.Positioning.ComponentNetwork.ArrangementsMode.InUsed; 
             netWork.RemoveAllConstraints(); 
             netWork.BeginDrag(); 
             positioner.BeginMoveComponent(); 
             netWork.MoveObjectsState = true; 
             netWork.DragByTransform(vector, matrix); 
             positioner.EndMoveComponent(); 
             netWork.EndDrag(); 
            //更新 
            currentMtx44 = position; 
        } 

        private double[] CalTrans(double[] position) 
        { 
            double[] trans = new double[16]; 
            double[] invertCurrentMtx44 = new double[16]; 
            theUfSession.Mtx4.Invert(currentMtx44, invertCurrentMtx44); 
            theUfSession.Mtx4.Multiply(invertCurrentMtx44, position, trans); 
            double[] translation = new double[3]; 
            theUfSession.Mtx4.AskTranslation(trans, translation); 
            double[] rotation = new double[9]; 
            theUfSession.Mtx4.AskRotation(trans, rotation); 
            theUfSession.Mtx3.Transpose(rotation, rotation); 
            theUfSession.Mtx4.Initialize(1, translation, rotation, trans); 
            return trans; 
        } 

    } 
}

 

© 著作权归作者所有

共有 人打赏支持
小猛Hit
粉丝 0
博文 5
码字总数 1184
作品 0
武汉
[转]Web App 框架选择之百度&腾讯

百度的GMU GMU(Global Mobile UI)是百度前端通用组开发的移动端组件库,GMU是基于zepto的mobile UI组件库,提供webapp、pad端简单易用的UI组件。具有代码体积小、简单、易用等特点,组件内...

冰点沐雪
2014/12/16
0
0
UE4移动组件详解(一)——移动框架与实现原理

前言 关于UE4的移动组件,我写了一篇非常详细的分析文档。由于篇幅比较大,我将其拆分成三个部分。分别从移动框架与实现原理,移动的网络同步,移动组件的优化与改造三个方面来写。这三篇文档...

sinat_28941165
04/11
0
0
手机网页用Bootstrap还是jQuery Mobile

很多新手纠结这个问题?两个框架都能够支持做手机网页,那么它们的区别是什么呢,适用场景是什么呢?下面我们从这几个方面比较这两个框架:解决问题、功能、适用场景。 解决问题 跨设备的网页...

snowing1990
2016/03/11
199
0
移动端框架收集

frozenui (http://frozenui.github.io/) App.js (http://code.kik.com/app/2/index.html) junior (http://justspamjustin.github.io/junior/#home) 移动web开发框架 纯粹的总结一下移动......

DannyTam
2016/07/11
70
0
基于 Vue 2.0 的 Mobile 组件库--Vant

Vant 是有赞开源的一套基于 的 Mobile 组件库。通过 Vant,可以快速搭建出风格统一的页面,提升开发效率。目前已有近 50 个组件,这些组件被广泛使用于有赞的各个移动端业务中。 Vant 旨在更...

匿名
2017/09/29
3.5K
11

没有更多内容

加载失败,请刷新页面

加载更多

WinDbg

参考来自:http://www.cnit.net.cn/?id=225 SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols ctrl + d to open dump_file Microsoft (R) Windows Debugger Version 6.12.0002.633......

xueyuse0012
今天
2
0
OSChina 周五乱弹 —— 想不想把92年的萝莉退货

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @罗马的王:分享松澤由美的单曲《地球ぎ》 很久没看圣斗士星矢了 《地球ぎ》- 松澤由美 手机党少年们想听歌,请使劲儿戳(这里) @开源中国首...

小小编辑
今天
14
2
springBoot条件配置

本篇介绍下,如何通过springboot的条件配置,控制Bean的创建 介绍下开发环境 JDK版本1.8 springboot版本是1.5.2 开发工具为 intellij idea(2018.2) 开发环境为 15款MacBook Pro 前言 很多时候,...

贺小五
今天
1
0
javascript source map 的使用

之前发现VS.NET会为压缩的js文添加一个与文件名同名的.map文件,一直没有搞懂他是用来做什么的,直接删除掉运行时浏览器又会报错,后来google了一直才真正搞懂了这个小小的map文件背后的巨大...

粒子数反转
昨天
1
0
谈谈如何学Linux和它在如今社会的影响

昨天,还在农耕脑力社会,今天已经人工智能技术、大数据、信息技术的科技社会了,高速开展并迅速浸透到当今科技社会的各个方面,Linux日益成为人们信息时代的到来,更加考验我们对信息的处理程...

linux-tao
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部