【无标题】

//绉诲姩澶嶅埗鐢?double oldmtx[9];
Point3d oriPt;

oldmtx[0] = manip0->XAxis().X;
				oldmtx[1] = manip0->XAxis().Y;
				oldmtx[2] = manip0->XAxis().Z;
				oldmtx[3] = manip0->YAxis().X;
				oldmtx[4] = manip0->YAxis().Y;
				oldmtx[5] = manip0->YAxis().Z;

				oriPt = manip0->Origin();



else if (block == manip0)
		{
			//---------Enter your code here-----------
		//	MoveObj();//閫夋嫨瀵硅薄绉诲姩
			std::vector<NXOpen::TaggedObject*> vecSelection = selection01->GetSelectedObjects();
			if (vecSelection.empty())return 0;
			int theenumValue = enum03->GetProperties()->GetEnum("Value");//鑾峰彇enum03鏋氫妇鍊硷紙绉诲姩澶嶅埗锛?			if (theenumValue == 1)//澶嶅埗涓斿彧澶嶅埗涓€娆?			{
				if (copyflag == 0)
				{
					vector<NXObject*>tempObjVec;
					for (int i = 0; i < selection01->GetSelectedObjects().size(); i++)
					{
						tempObjVec.push_back(dynamic_cast<NXObject*>(selection01->GetSelectedObjects()[i]));
					}
					copyflag = copyComponent(tempObjVec);
				}
			}

			double newOrigin[3] = { manip0->Origin().X, manip0->Origin().Y, manip0->Origin().Z };
			double newXdir[3] = { manip0->XAxis().X, manip0->XAxis().Y, manip0->XAxis().Z };
			double newYdir[3] = { manip0->YAxis().X, manip0->YAxis().Y, manip0->YAxis().Z };

			double oldXdir[3] = { oldmtx[0], oldmtx[1], oldmtx[2] };
			double oldYdir[3] = { oldmtx[3], oldmtx[4], oldmtx[5] };
			double oldOrigin[3] = { oriPt.X,oriPt.Y,oriPt.Z };
			double Mtx0[16];

			UF_MTX4_csys_to_csys(oldOrigin, oldXdir, oldYdir, newOrigin, newXdir, newYdir, Mtx0);
			double xform[4][4];
			UF_VEC3_copy(Mtx0 + 0, xform[0]);
			UF_VEC3_copy(Mtx0 + 4, xform[1]);
			UF_VEC3_copy(Mtx0 + 8, xform[2]);
			UF_VEC3_copy(Mtx0 + 12, xform[3]);
			xform[0][3] = Mtx0[3];
			xform[1][3] = Mtx0[7];
			xform[2][3] = Mtx0[11];
			xform[3][3] = Mtx0[15];

			UF_ASSEM_level_option_t option; option = UF_ASSEM_use_existing_level;
			for (size_t i = 0; i < vecSelection.size(); i++)
			{
				UF_ASSEM_reposition_part_occurrence(vecSelection[i]->Tag(), xform, option);
			}


			oriPt = manip0->Origin();
			oldmtx[0] = manip0->XAxis().X;
			oldmtx[1] = manip0->XAxis().Y;
			oldmtx[2] = manip0->XAxis().Z;
			oldmtx[3] = manip0->YAxis().X;
			oldmtx[4] = manip0->YAxis().Y;
			oldmtx[5] = manip0->YAxis().Z;
			double  Mtx1[16] =
			{
				1,0,0,0,
				0,1,0,0,
				0,0,1,0,
				0,0,0,1
			};
			for (size_t i = 0; i < 16; i++)
				if (fabs(Mtx1[i] - Mtx0[i]) > 0.01) return 0;
			selection01->Focus();
		}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值