NX二次開發 元件沿向量方向平移 C

2021-09-29 15:53:50 字數 1660 閱讀 3887

在nx二次開發中,元件的平移可以通過錄製的方式獲得.cs**,然後只需要修改三個地方:

/// /// 元件按照vector方向平移distance

///

/// 元件

/// 移動方向

/// 移動距離

public static void transformcomponent(component component,doublevector,double distance)

這個沒有open c方便

用open c時,是用ufassem.repositioninstance(instancetag, devicepointdouble, newcsys);實現的,其中:

instancetag是由tag instancetag = ufassem.askinstofpartocc(devicecomponent.tag);獲得的,

devicepointdouble是重定位後裝置的定位點;

newcsys是重定位後的元件座標系的x軸和y軸。

以下是實現元件旋轉的**:

///獲取元件的instance

tag instancetag = ufassem.askinstofpartocc(devicecomponent.tag);

///計算旋轉矩陣

double mtx = new double[9];

ufmtx3.rotateaboutaxis(deviceaxisvectordouble, rotateangle.value * math.pi / 180, mtx);

///獲得裝置旋轉後的新座標系的x軸

double xaxis = new double[3];

ufmtx3.vecmultiply(deviceaxisvectordouble, mtx, xaxis);

///獲取裝置旋轉後的新座標系的y軸

///其中,原z軸是已知的,y軸由z×x得到的

ufvec3 ufvec3 = theufsession.vec3;

double cross = new double[3];

ufvec3.cross(devicezvectordouble, deviceaxisvectordouble, cross);

double yaxis = new double[3];

ufmtx3.vecmultiply(cross, mtx, yaxis);

///根據定位點和新的座標系獲得裝置的定位資訊

double newcsys = new double[6] ;

ufassem.repositioninstance(instancetag, devicepointdouble, newcsys);

#region 修改元件的屬性

nxopen.partloadstatus partloadstatus;

thesession.parts.setworkcomponent(devicecomponent, out partloadstatus);

workpart = thesession.parts.work;

double zaxis = new double[3];

ufvec3.cross(xaxis, yaxis, zaxis);

NX二次開發 CreateDialog

場景描述 nx二次開發中建立ui時,會使用ui getui createdialog thedlxfilename 如果專案新增windows庫,會將createdialog替換成createdialogw或createdialoga 報錯內容 class nxopen ui 沒有成員 create...

NX二次開發之通用NX物件

通用nx物件 按照是否被儲存到部件檔案中,分為永久和臨時nx物件 1 永久nx物件 全部繼承taggedobject 2.臨時nx物件 用來輔助建立永久物件,或者臨時在nx使用者介面中顯示的物件。通用nx物件的操作 通用物件標識 tag handle taggedobject typedef uns...

nx二次開發 環境配置

以c 語言講解環境配置 1.安裝好nx和vs 一般來說nx和vs的版本要對應,如nx10.0對應vs2012 如果不對應則需要修改d program files siemens nx 10.0 ugopen vs files vc vcprojects nx10 nxopencpp.vsz該檔案中的...