在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該檔案中的...