Open C、Open C++和NXOpen C++混合开发

三者的关系我在以前的文章中讲过了。但是他们都不是孤立的,互相可以使用。

下面举了个不同部分用不同的代码,

函数形式的是Open C,也就是API了

类形式不带NXOpen的是Open C++,否则是NXOpen C++了。

Tag是所有之间的桥梁。

Open C、Open C++和NXOpen C++混合开发//NXOpen header files
Open C、Open C++和NXOpen C++混合开发#include <NXOpen/Session.hxx>
Open C、Open C++和NXOpen C++混合开发#include <NXOpen/Part.hxx>
Open C、Open C++和NXOpen C++混合开发#include <NXOpen/PartCollection.hxx>
Open C、Open C++和NXOpen C++混合开发//#include <NXOpen/Point.hxx>
Open C、Open C++和NXOpen C++混合开发#include <NXOpen/Line.hxx>
Open C、Open C++和NXOpen C++混合开发#include <NXOpen/CurveCollection.hxx>
Open C、Open C++和NXOpen C++混合开发#include <NXOpen/Arc.hxx>
Open C、Open C++和NXOpen C++混合开发#include <NXOpen/NXObjectManager.hxx>
Open C、Open C++和NXOpen C++混合开发//#include <NXOpen/NXString.hxx>
Open C、Open C++和NXOpen C++混合开发
Open C、Open C++和NXOpen C++混合开发//UFunc Headers
Open C、Open C++和NXOpen C++混合开发#include <uf_curve.h>
Open C、Open C++和NXOpen C++混合开发#include <uf.h>
Open C、Open C++和NXOpen C++混合开发#include <uf_csys.h>
Open C、Open C++和NXOpen C++混合开发#include <uf_part.h>
Open C、Open C++和NXOpen C++混合开发
Open C、Open C++和NXOpen C++混合开发// UGOpen headers
Open C、Open C++和NXOpen C++混合开发#include <ug_session.hxx>
Open C、Open C++和NXOpen C++混合开发#include <ug_part.hxx>
Open C、Open C++和NXOpen C++混合开发#include <ug_line.hxx>
Open C、Open C++和NXOpen C++混合开发#include <ug_arc.hxx>
Open C、Open C++和NXOpen C++混合开发#include <ug_coord_sys.hxx>
Open C、Open C++和NXOpen C++混合开发#include <coord_sys.hxx>
Open C、Open C++和NXOpen C++混合开发
Open C、Open C++和NXOpen C++混合开发int main(int argc, char* argv[])
Open C、Open C++和NXOpen C++混合开发Open C、Open C++和NXOpen C++混合开发...{
Open C、Open C++和NXOpen C++混合开发
Open C、Open C++和NXOpen C++混合开发 int errorCode;
Open C、Open C++和NXOpen C++混合开发
Open C、Open C++和NXOpen C++混合开发Open C、Open C++和NXOpen C++混合开发 /**//* Here, we can initialize session using :
Open C、Open C++和NXOpen C++混合开发        1. Open C API environment
Open C、Open C++和NXOpen C++混合开发        2. Open C++ API environment
Open C、Open C++和NXOpen C++混合开发        3. NX Open C++ APIs.
Open C、Open C++和NXOpen C++混合开发
Open C、Open C++和NXOpen C++混合开发        User has to initialize, UG Session using Open C++ as well as NX Open C++, session
Open C、Open C++和NXOpen C++混合开发        also.
Open C、Open C++和NXOpen C++混合开发 */
Open C、Open C++和NXOpen C++混合开发
Open C、Open C++和NXOpen C++混合开发Open C、Open C++和NXOpen C++混合开发 /**//* Using Open C API, we can initialize UGSession as follows */
Open C、Open C++和NXOpen C++混合开发Open C、Open C++和NXOpen C++混合开发 /**//*
Open C、Open C++和NXOpen C++混合开发       errorCode = UF_initialize();
Open C、Open C++和NXOpen C++混合开发       if ( 0 != errorCode )
Open C、Open C++和NXOpen C++混合开发       {
Open C、Open C++和NXOpen C++混合开发            return errorCode; 
Open C、Open C++和NXOpen C++混合开发       }
Open C、Open C++和NXOpen C++混合开发 */
Open C、Open C++和NXOpen C++混合开发
Open C、Open C++和NXOpen C++混合开发    NXOpen::Part *part1;
Open C、Open C++和NXOpen C++混合开发
Open C、Open C++和NXOpen C++混合开发Open C、Open C++和NXOpen C++混合开发 /**//* Using Open C++ API, we can initialize UGSession as follows */
Open C、Open C++和NXOpen C++混合开发    UgSession::initialize();
Open C、Open C++和NXOpen C++混合开发
Open C、Open C++和NXOpen C++混合开发Open C、Open C++和NXOpen C++混合开发 /**//* Using NX Open C++ API, we can initialize UGSession as follows */
Open C、Open C++和NXOpen C++混合开发    NXOpen::Session *theSession = NXOpen::Session::GetSession();
Open C、Open C++和NXOpen C++混合开发
Open C、Open C++和NXOpen C++混合开发Open C、Open C++和NXOpen C++混合开发 /**//* Create a new part.
Open C、Open C++和NXOpen C++混合开发       To create new part one can use :
Open C、Open C++和NXOpen C++混合开发        1. Open C API environment
Open C、Open C++和NXOpen C++混合开发        2. Open C++ API environment
Open C、Open C++和NXOpen C++混合开发        3. NX Open C++ APIs.
Open C、Open C++和NXOpen C++混合开发 */
Open C、Open C++和NXOpen C++混合开发 char* partName = "InteropWithOpenCOpenCPPAndNXOpenCPP.prt";
Open C、Open C++和NXOpen C++混合开发Open C、Open C++和NXOpen C++混合开发 /**//* Using Open C API, we can create new part as follows */
Open C、Open C++和NXOpen C++混合开发Open C、Open C++和NXOpen C++混合开发 /**//*
Open C、Open C++和NXOpen C++混合开发    tag_t UF_partTag;
Open C、Open C++和NXOpen C++混合开发    UF_PART_new(partName,2,&UF_partTag);
Open C、Open C++和NXOpen C++混合开发 */
Open C、Open C++和NXOpen C++混合开发
Open C、Open C++和NXOpen C++混合开发Open C、Open C++和NXOpen C++混合开发 /**//* Using Open C++ API, we can create new part as follows */
Open C、Open C++和NXOpen C++混合开发    UgPart *UGPart = UgPart::create(partName, Inches );
Open C、Open C++和NXOpen C++混合开发
Open C、Open C++和NXOpen C++混合开发Open C、Open C++和NXOpen C++混合开发 /**//* Using NX Open C++ API, we can create new part as follows */
Open C、Open C++和NXOpen C++混合开发Open C、Open C++和NXOpen C++混合开发 /**//*
Open C、Open C++和NXOpen C++混合开发    NXOpen::NXString partName = "InteropWithOpenCOpenCPPAndNXOpenCPP.prt";
Open C、Open C++和NXOpen C++混合开发    part1 = theSession->GetParts()->NewDisplay(partName, NXOpen::Part::UnitsInches);
Open C、Open C++和NXOpen C++混合开发 */
Open C、Open C++和NXOpen C++混合开发
Open C、Open C++和NXOpen C++混合开发 //--------------------------------------------------------------------------
Open C、Open C++和NXOpen C++混合开发 //            Interop between NX Open C++ APIs and Open C
Open C、Open C++和NXOpen C++混合开发Open C、Open C++和NXOpen C++混合开发 /**//* Create a line using NX Open C++ APIs*/
Open C、Open C++和NXOpen C++混合开发    NXOpen::Point3d point3d1(-2.17019791346668, 1.13935390457001, 0);
Open C、Open C++和NXOpen C++混合开发    NXOpen::Point3d point3d2(-0.714356813182783, 1.13935390457001, 0);
Open C、Open C++和NXOpen C++混合开发    NXOpen::Line *line1;
Open C、Open C++和NXOpen C++混合开发    line1 = theSession->GetParts()->GetWork()->GetCurves()->CreateLine(point3d1, point3d2);
Open C、Open C++和NXOpen C++混合开发
Open C、Open C++和NXOpen C++混合开发Open C、Open C++和NXOpen C++混合开发 /**//* Retrieve line coordinates using Open C API */
Open C、Open C++和NXOpen C++混合开发    tag_t line_tag=line1->GetTag();
Open C、Open C++和NXOpen C++混合开发
Open C、Open C++和NXOpen C++混合开发    UF_CURVE_line_t line_coords;
Open C、Open C++和NXOpen C++混合开发    UF_CURVE_ask_line_data(line_tag, &line_coords);
Open C、Open C++和NXOpen C++混合开发
Open C、Open C++和NXOpen C++混合开发 //--------------------------------------------------------------------------
Open C、Open C++和NXOpen C++混合开发 //            Interop between Open C++ and NX Open C++ APIs
Open C、Open C++和NXOpen C++混合开发    Point3 UGPt1(line_coords.start_point[0]+5,line_coords.start_point[1]+5, line_coords.start_point[2]+5);
Open C、Open C++和NXOpen C++混合开发    Point3 UGPt2(line_coords.end_point[0]+5,line_coords.end_point[1], line_coords.end_point[2]);
Open C、Open C++和NXOpen C++混合开发
Open C、Open C++和NXOpen C++混合开发    UgLine* UGLine;
Open C、Open C++和NXOpen C++混合开发    UGLine = UgLine::create(UGPt1, UGPt2);
Open C、Open C++和NXOpen C++混合开发
Open C、Open C++和NXOpen C++混合开发    UgCoordSys *UGCoordsys;
Open C、Open C++和NXOpen C++混合开发    UGCoordsys = UgSession::getWCS();
Open C、Open C++和NXOpen C++混合开发    CoordSys Sys = UGCoordsys->getCoordSys();
Open C、Open C++和NXOpen C++混合开发
Open C、Open C++和NXOpen C++混合开发 // Creating Arc
Open C、Open C++和NXOpen C++混合开发    UgArc* OpenCPPArc = UgArc::create(5.0, 0.25, 3.14, Sys);
Open C、Open C++和NXOpen C++混合开发    tag_t arc_tag = OpenCPPArc->getTag();
Open C、Open C++和NXOpen C++混合开发
Open C、Open C++和NXOpen C++混合开发    NXOpen::Arc *nxArc = (NXOpen::Arc*)NXOpen::NXObjectManager::Get(arc_tag);
Open C、Open C++和NXOpen C++混合开发
Open C、Open C++和NXOpen C++混合开发 double nxArc_radius = nxArc->GetRadius();
Open C、Open C++和NXOpen C++混合开发 double nxArc_start_angle = nxArc->GetStartAngle();
Open C、Open C++和NXOpen C++混合开发 double nxArc_end_angle = nxArc->GetEndAngle();
Open C、Open C++和NXOpen C++混合开发
Open C、Open C++和NXOpen C++混合开发 //------------------------------------------------------------------------------------
Open C、Open C++和NXOpen C++混合开发
Open C、Open C++和NXOpen C++混合开发Open C、Open C++和NXOpen C++混合开发 /**//* Save this work part.
Open C、Open C++和NXOpen C++混合开发       To save this work part one can use :
Open C、Open C++和NXOpen C++混合开发           1. Open C API environment
Open C、Open C++和NXOpen C++混合开发        2. Open C++ API environment
Open C、Open C++和NXOpen C++混合开发        3. NX Open C++ APIs.
Open C、Open C++和NXOpen C++混合开发 */
Open C、Open C++和NXOpen C++混合开发
Open C、Open C++和NXOpen C++混合开发Open C、Open C++和NXOpen C++混合开发 /**//* Using Open C API, we can save this part as follows */
Open C、Open C++和NXOpen C++混合开发Open C、Open C++和NXOpen C++混合开发 /**//*
Open C、Open C++和NXOpen C++混合开发    UF_PART_save();
Open C、Open C++和NXOpen C++混合开发 */
Open C、Open C++和NXOpen C++混合开发
Open C、Open C++和NXOpen C++混合开发Open C、Open C++和NXOpen C++混合开发 /**//* Using Open C++ API, we can save this part as follows */
Open C、Open C++和NXOpen C++混合开发Open C、Open C++和NXOpen C++混合开发 /**//*
Open C、Open C++和NXOpen C++混合开发    UGPart->save();
Open C、Open C++和NXOpen C++混合开发 */
Open C、Open C++和NXOpen C++混合开发
Open C、Open C++和NXOpen C++混合开发Open C、Open C++和NXOpen C++混合开发 /**//* Using NX Open C++ API, we can save this part as follows */
Open C、Open C++和NXOpen C++混合开发Open C、Open C++和NXOpen C++混合开发 /**//* To get the part from the Part tag */
Open C、Open C++和NXOpen C++混合开发    part1 = (NXOpen::Part*)NXOpen::NXObjectManager::Get(UGPart->getTag());
Open C、Open C++和NXOpen C++混合开发Open C、Open C++和NXOpen C++混合开发 /**//* To save work part using NXOpen automation APIs */
Open C、Open C++和NXOpen C++混合开发    NXOpen::PartSaveStatus *partSaveStatus;
Open C、Open C++和NXOpen C++混合开发    part1->Save(NXOpen::Part::SaveComponentsTrue, NXOpen::Part::CloseAfterSaveTrue, &partSaveStatus);
Open C、Open C++和NXOpen C++混合开发Open C、Open C++和NXOpen C++混合开发 /**//* To close all parts using NXOpen automation APIs */
Open C、Open C++和NXOpen C++混合开发    theSession->GetParts()->CloseAll(NXOpen::Part::CloseModifiedCloseModified, NULL);
Open C、Open C++和NXOpen C++混合开发
Open C、Open C++和NXOpen C++混合开发Open C、Open C++和NXOpen C++混合开发 /**//* Terminate the session using Open C API */
Open C、Open C++和NXOpen C++混合开发    errorCode = UF_terminate();
Open C、Open C++和NXOpen C++混合开发
Open C、Open C++和NXOpen C++混合开发 return 0;
Open C、Open C++和NXOpen C++混合开发}

 

原文:http://blog.csdn.net/begtostudy/archive/2008/05/17/2453773.aspx

原文链接: https://www.cnblogs.com/begtostudy/archive/2010/11/19/1882002.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    Open C、Open C++和NXOpen C++混合开发

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/17567

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月7日 下午6:09
下一篇 2023年2月7日 下午6:11

相关推荐