ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

c#直接调用DLL里面的函数,以UF_MODL_ask_face_parm为例

2021-02-10 19:02:07  阅读:228  来源: 互联网

标签:c# double parm pnt face static UF public


using System;
using NXOpen;
using NXOpen.UF;
using System.Runtime.InteropServices;

public class Program
{
    // class members
    [DllImport("libufun.dll", EntryPoint = "UF_MODL_ask_face_parm")]
    public static extern int UF_MODL_ask_face_parm(Tag face_id, double[] ref_pnt, double[] parm, double[] face_pnt);
    private static Session theSession;
    private static Part workpart;
    private static UI theUI;
    private static UFSession theUfSession;
    public static Program theProgram;
    public static ListingWindow lw;
    public static bool isDisposeCalled;

    //------------------------------------------------------------------------------
    // Constructor
    //------------------------------------------------------------------------------
    public Program()
    {
        try
        {
            theSession = Session.GetSession();
            workpart = theSession.Parts.Work;
            theUI = UI.GetUI();
            theUfSession = UFSession.GetUFSession();
            lw = theSession.ListingWindow;
            lw.Open();
            isDisposeCalled = false;
        }
        catch (NXOpen.NXException ex)
        {
            // ---- Enter your exception handling code here -----
            // UI.GetUI().NXMessageBox.Show("Message", NXMessageBox.DialogType.Error, ex.Message);
        }
    }

    //------------------------------------------------------------------------------
    //  Explicit Activation
    //      This entry point is used to activate the application explicitly
    //------------------------------------------------------------------------------
    public static int Main(string[] args)
    {
        int retValue = 0;
        try
        {
            theProgram = new Program();
            double[] parm = new double[2];
            double[] face_pnt = new double[3];
            double[] ref_pnt = new double[] { -18.75412126318, 3.13573138078, 18.82464836060 };
            NXOpen.Utilities.JAM.StartUFCall();
            UF_MODL_ask_face_parm((Tag)29684, ref_pnt, parm, face_pnt);
            NXOpen.Utilities.JAM.EndUFCall();
            lw.WriteLine(parm[0].ToString() + "," + parm[1].ToString());
            lw.WriteLine(face_pnt[0].ToString() + "," + face_pnt[1].ToString() + "," + face_pnt[2].ToString());
            theProgram.Dispose();
        }
        catch (NXOpen.NXException ex)
        {
            // ---- Enter your exception handling code here -----

        }
        return retValue;
    }

    //------------------------------------------------------------------------------
    // Following method disposes all the class members
    //------------------------------------------------------------------------------
    public void Dispose()
    {
        try
        {
            if (isDisposeCalled == false)
            {
                //TODO: Add your application code here 
            }
            isDisposeCalled = true;
        }
        catch (NXOpen.NXException ex)
        {
            // ---- Enter your exception handling code here -----

        }
    }

    public static int GetUnloadOption(string arg)
    {
        //Unloads the image explicitly, via an unload dialog
        //return System.Convert.ToInt32(Session.LibraryUnloadOption.Explicitly);

        //Unloads the image immediately after execution within NX
        return System.Convert.ToInt32(Session.LibraryUnloadOption.Immediately);

        //Unloads the image when the NX session terminates
        // return System.Convert.ToInt32(Session.LibraryUnloadOption.AtTermination);
    }

}

 

标签:c#,double,parm,pnt,face,static,UF,public
来源: https://blog.csdn.net/huang233229920/article/details/113784741

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有