程序效果:
创建立方体Image.png
   void test()
    {
        for (int i = 0; i < 100; i++)
        {
            Double[] pos = new Double []{ 0, 0, i*30+ 20 + i * 5 };
            String[] len = {(20+i*5).ToString(), (20 + i * 5).ToString(), (20 + i * 5).ToString() };
            Tag tag;
            UFModl uf_modl = UFSession.GetUFSession().Modl;
            uf_modl.CreateBlock1(FeatureSigns.Nullsign, pos, len, out tag);
        }
    }
    public Program()
    {
        try
        {
            theSession = Session.GetSession();
            theUI = UI.GetUI();
            theUfSession = UFSession.GetUFSession();
            isDisposeCalled = false;
            test();
        }
        catch (NXOpen.NXException ex)
        {
            // —- Enter your exception handling code here —–
            // UI.GetUI().NXMessageBox.Show(“Message”, NXMessageBox.DialogType.Error, ex.Message);
        }
    }
以上为关键程序段,test函数可以生成100个大小递增位置Z递增的立方体.
创建立方体的函数为CreateBlock1()该方法是uf_modl类的方法,要使用该方法,前提是有一个已经定义的uf_modl类,本例子的获取方法为UFSession.GetUFSession().Modl;
CreateBlock1()的参数如下所示:
public void CreateBlock1 (FeatureSigns sign,double[] corner_pt,string[] edge_len,out Tag blk_obj_id)
sign为特征标志,目前没研究出来是干啥的,至少在上面那个程序里,使用Nullsign,Unite,Subtract,Intersect作为参数分别试过,没发现有什么区别
corner_pt为坐标位置,为一个double类型的有3个成员的数组,分别是XYZ,基于绝对坐标CSYS
edge_len为立方体的长宽高,为一个string类型的有3个成员的数组,分别是长宽高,参数中每个string成员可以是一个常数或者一个简单的计算式,例如string[] len={“1+1″,”5*5″,”10-1”};
blk_obj_id为返回的立方体id,目前还不知道有啥用,前面创建个Tag tag赋值进去就行.