找回密码 注册 QQ登录
开思网工业级高精度在线3D打印服务

iCAx开思网

CAD/CAM/CAE/设计/模具 高清视频【积分说明】如何快速获得积分?快速3D打印 手板模型CNC加工服务在线3D打印服务,上传模型,自动报价
12
返回列表 发新帖
打印 上一主题 下一主题

【求助】UG二次开发的高手来看一下,麻烦了

[复制链接]
11
发表于 2005-1-21 09:04:45 | 只看该作者
这当然是购买了许可证的,不是卖给用户,是卖给公司
UF_PART_open(const char * part_name  
tag_t * part  
UF_PART_load_status_t * error_status );
请问一下,这个函数中第二,第三个参数是什么参数啊?
我指定打开单个文件,用这个判断
if(part==NULL_TAG)
{   
AfxMessageBox("a");
}else{
AfxMessageBox("b");
}
再UF_PART_save_as(".....");一个文件
  
发现一个问题,在不同的文件夹中,会打印出相同的b值
在相同的文件夹中,会打印出先b后a
所以不知道这两个参数到底是什么意思
是函数体错还是方法错误啊?
12
发表于 2005-1-21 09:06:20 | 只看该作者
补充一下
上面连续指定打开2个文件
和批量打开差不多
批量打开在相同文件夹下的文件转换会打印先b后面都是a的情况
13
发表于 2005-1-25 11:30:40 | 只看该作者
UF_part_open()函数只能用于打开部件文件
UF_part_save as()用于保存
为什么我open函数第一次可以打开dxf文件,转换格式成功
打开第二个文件就不能打开了呢
open函数不能用于dxf文件打开,索性都不能打开
为什么第一个可以打开的呢
我实行批量转换的时候,有是会转换成功就是说文件都能打开
可是大部分时候都不能打开,会报错,open返回值是3420007
有人知道这是怎么回事吗?
14
发表于 2005-1-25 13:54:39 | 只看该作者
如果可以的话,把你的代码传上来看,一部分也行,看得更清楚。
根据你上面讲的来看,问题应该是你的part已经打开了,第二次打开不行。
15
发表于 2005-1-25 15:18:05 | 只看该作者
void ProgressShow::CreateFolder(CString cstrSFolder, CString cstrDFolder)
{
  structFPath  sFPath;
  CString      cstrTemp;
  CString sFileName,dFileName,sFile;
  
  UF_PART_load_status_t error_status;
  
  int unit=1;  
    tag_t part1;
  int scope=1;
  int mode=1;
  
    CArray<structFPath,structFPath[$> myArray]
  
  CString sPath=cstrSFolder;
  
    CFileFind tempFind;   //声明一个CFileFind类变量,以用来搜索
    char tempFileFind[200]; //用于定义搜索格式
    sprintf(tempFileFind,"%s\\*.*",cstrSFolder);//匹配格式为*.*,即该目录下的所有文件  
  
    BOOL IsFinded=(BOOL)tempFind.FindFile(tempFileFind);//查找第一个文件
    while(IsFinded)
  {
      IsFinded=(BOOL)tempFind.FindNextFile();//递归搜索其他的文件  
      if(!tempFind.IsDots())//如果不是"."目录
    {
    cstrSFolder=tempFind.GetFilePath();
        cstrTemp=cstrDFolder + "\\" + tempFind.GetFileTitle();
    if (tempFind.IsDirectory())
    {
      LPTSTR lprCopyTo=new char[255];
            lstrcpy(lprCopyTo,cstrTemp);//目标文件夹
      sPath=lprCopyTo;
      CreateDirectory(lprCopyTo,NULL);
            sFPath.SPath=cstrSFolder;
      sFPath.DPath=cstrTemp;
      myArray.Add(sFPath);
    }
    else
    {
      CString FileTitle=tempFind.GetFileTitle();
  
            sFileName=tempFind.GetFilePath();
      sFile=tempFind.GetFileName();
      dFileName=cstrDFolder + "\\" + sFile;
      if (equalDxf(sFileName))
      {
          int err=UF_PART_open(sFileName,[$part1,&error_status)]
          if(err==0)
        {
          UF_PART_save_as(dFileName);
        }
        else
        {
          DealError(CurPath,sFileName);
        }
  
        CString tempFile=FileTitle+"_dxf.prt";
        CString filePath=sPath+"\\"+tempFile;      
          deleteFile(filePath);
        CString fileLog=sPath+"\\"+FileTitle+".log";
        deleteFile(fileLog);
        CString fileSummary=sPath+"\\"+FileTitle+"_dxf_summary.log";
        deleteFile(fileSummary);
  
        iCurFileNum=iCurFileNum+1;
        m_CurFile.SetWindowText(sFileName);
        DealProgress();
  
      }
    }
    }
    CheckMessageQueue();
  }
    tempFind.Close();
    CheckMessageQueue();
  while (myArray.GetSize()!=0)
  {
       sFPath=myArray.GetAt(0);
     myArray.RemoveAt(0,1);
       CreateFolder(sFPath.SPath,sFPath.DPath);
  }
}
这是我的一个按钮转换函数,涉及UG的是从open以后开始的
16
发表于 2005-1-25 15:20:13 | 只看该作者
为什么只能打开一个DXF文件,而对于prt文件都可以打开,是不是open只对prt文件有用因为是ug自身的函数.
不过我open也打开了一个dxf文件了呀,为什么别的打开不了了啊
17
发表于 2005-1-25 15:26:11 | 只看该作者
初始化UF_initialize();和结束UF_terminate();都是分别做在应用程序启动和关闭的地方的
18
发表于 2005-1-25 21:44:18 | 只看该作者
既然你有错误号,可以用UF_get_fail_message()来查看一下错误的含义嘛。
19
发表于 2005-1-26 08:41:06 | 只看该作者
含义就是dxfdwg错,晕
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3D打印手板模型快速制作服务,在线报价下单!

QQ 咨询|手机版|联系我们|iCAx开思网  

GMT+8, 2025-1-31 13:00 , Processed in 0.025299 second(s), 9 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2025 www.iCAx.org

快速回复 返回顶部 返回列表