iCAx开思工具箱

标题: 【求助】获取图形中的文字,总是出现内存错误是怎么回事? [打印本页]

作者: wdxing    时间: 2003-9-20 11:06
标题: 【求助】获取图形中的文字,总是出现内存错误是怎么回事?
我是用一下一段程序读取图形注释文字的,但是从事出现内存错误,特别是从label_info中获取文字信息时总是得不到,到底应该怎么才能获得文字阿!附读取的UG图形!
   UF_initialize();
UF_UI_open_part([$error_handler,file_name,&use_display_file,&part_tag,&response,&part_status)]
  if(part_tag!=NULL_TAG)
{
    part_tag = UF_PART_ask_display_part();   
   irc = UF_OBJ_cycle_objs_in_part(part_tag, UF_drafting_entity_type,  [$solid)]
  do{
      UF_OBJ_ask_type_and_subtype(solid, [$type, &sub_type)]
     if(sub_type==UF_draft_note_subtype)
    {
       ifail = UF_DRF_ask_label_info (solid,[$label_origin[0], &label_info )]
       temp=label_info->text_info->text->full_string;  
       uc1601(temp,1);        
       UF_DRF_free_label( [$label_info )]
     }
    UF_OBJ_cycle_objs_in_part(part_tag, UF_drafting_entity_type, [$solid)]  
  }while(solid != NULL_TAG);
}                              
作者: pinkwall    时间: 2003-9-20 13:37
UF_DRF_free_label( [$label_info )]
把这句话注释掉 看看  
     
作者: wdxing    时间: 2003-9-20 18:29
To:pinkwall  谢谢你的回复,但是屏蔽掉那句话还是不好使阿!
作者: zzz    时间: 2003-9-21 14:55
出错要先看log file中的提示,这样可以很快发现问题出在哪一句话上,已经说了N遍了,看看以前的帖子。
再具体说你的代码,在遍历之前要初始化的,你的solid开始设为NULL_TAG了吗?
作者: wdxing    时间: 2003-9-21 16:14
To zzz:谢谢斑竹的回复!我确实已经把它初始化了,可是还是出现内存错误!我把我的程序和打开的UG图形放在附件了,麻烦斑竹帮我看看是什么问题!同时附带错误日志(我没能看出是哪儿出了错误)!
作者: liberty000    时间: 2003-9-22 09:41
我看你 temp=label_info->text_info->text->full_string  
这里出问题了。不知对否?
作者: wdxing    时间: 2003-9-22 13:32
回复:liberty000  
就是那句话出现错误!
  
作者: gasyu    时间: 2003-9-28 12:04
哪位能告诉我这个错误怎么改吗?
作者: wdxing    时间: 2003-9-28 14:44
这个问题我解决了,不应该用函数UF_DRF_ask_label_info ,换成函数UF_DRF_ask_draft_aid_text_info就搞定了,你试试吧!
作者: gasyu    时间: 2003-9-28 20:14
哥们,能不能贴点代码给我,谢谢!
作者: wdxing    时间: 2003-9-29 09:01
楼上的,你看看下面的代码:
ifail = UF_OBJ_cycle_objs_in_part( UF_ASSEM_ask_work_part(),
                                       UF_drafting_entity_type,
                                       [$draft_aid_tag )]
while(!ifail && draft_aid_tag!=NULL_TAG )  
{
ifail=UF_OBJ_ask_type_and_subtype(draft_aid_tag, [$type, &sub_type)]
     if(!ifail && (sub_type==UF_draft_note_subtype || sub_type==UF_draft_assorted_parts_subtype) )
    {
  /* Retrieve the text information of the drafting entity. */
      ifail = UF_DRF_ask_draft_aid_text_info ( draft_aid_tag,&num_text,
    [$text_info )]
     if( !ifail )
    {
        my_text=text_info->text  ;
       //用于取出多行的文本
      char  temp1[200];
      for(int i=0;i<text_info->num_lines ;i++)
     {
                  strcpy(temp1,my_text->full_string);
                  if(i==0)
                          strcpy(temp,temp1);
                  else
                           trcat(temp,temp1);
                  my_text++;
      }
     uc1601(temp,1);
    /*Free the memory that contains the text information.*/
    ifail = UF_DRF_free_text( num_text, [$text_info )]
       }
  }
    UF_OBJ_cycle_objs_in_part(UF_ASSEM_ask_work_part(), UF_drafting_entity_type, [$draft_aid_tag)]  
}
作者: gasyu    时间: 2003-9-29 17:29
谢了wdxing
作者: zhaoyuan    时间: 2006-3-11 21:24
标题: 关于在打开UG的图形文件
打开UG的文件利用UF_UI_create_filebox,但是如何能看到图形文件的预览preview?

请教各位高手




欢迎光临 iCAx开思工具箱 (https://t.icax.org/) Powered by Discuz! X3.3