文档章节

移动组件

小猛Hit
 小猛Hit
发布于 2017/04/19 11:03
字数 273
阅读 5
收藏 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

没有更多内容

加载失败,请刷新页面

加载更多

下一页

postman发送json格式的post请求

postman发送json格式的post请求 在地址栏里输入请求url:http://127.0.0.1:8081/getmoney 选择“POST”方式, 在“headers”添加key:Content-Type , value:application/json 点击"body",''ra...

两广总督bogang
9分钟前
0
0
Javascript将html转成pdf,下载(html2canvas 和 jsPDF)

最近碰到个需求,需要把当前页面生成pdf,并下载。弄了几天,自己整理整理,记录下来,我觉得应该会有人需要 :) 项目源码地址:https://github.com/linwalker/render-html-to-pdf html2ca...

孟飞阳
9分钟前
0
0
pureftp源码编译及设定

--- use for RHEL 567 and Ubuntu 1604 1. download pureftpd wget http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.47.tar.bz2 2. install gcc #apt-get install -y li......

zzimac
11分钟前
0
0
Android 事件分发 简单学

本文地址:https://my.oschina.net/lifj/blog/1928132 Android 事件分发过程 网上有很多这样的文章,我又写了一篇,希望能够清晰明了的告诉大家整体的事件分发过程,而不是一脸懵逼的进来,一...

拉风的道长
12分钟前
0
0
手相学 - 天尊山道人看相算命

手相学 - 天尊山道人看相算命 手并拢,左右手正面,背面,小指侧面共六张照片,(可选:舌象、面相)。光线,自然光较好,非阳光直射。 EM4KBJK}Y9Z6ONEL(C~DDV.jpg 生命线 生命线:由拇指与食...

python测试开发人工智能安全
12分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部