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

iCAx开思网

CAD/CAM/CAE/设计/模具 高清视频【积分说明】如何快速获得积分?快速3D打印 手板模型CNC加工服务在线3D打印服务,上传模型,自动报价
查看: 17078|回复: 6
打印 上一主题 下一主题

UG二次开发---Draft模式中怎样Add Baseview?

[复制链接]
跳转到指定楼层
1
发表于 2006-12-24 13:47:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多同行朋友,交流,分享,学习。

您需要 登录 才可以下载或查看,没有帐号?注册

x
进入二维图,要创建一个base view(如主视图,俯视图等),我查了document里面的函数
如extern int UF_DRAW_add_auxiliary_view (
const tag_t drawing_tag,
const tag_t parent_view_tag,
const tag_t hinge_line_tag,
double dwg_reference_point[ 2 ],
tag_t * aux_view_tag );
都有一个parent_view_tag, 但是要新创建一个base view,没有parent_view_tag啊?
请教怎么解决,有没有其他的函数或者方法创建一个base view!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 赞一下!赞一下!
2
发表于 2006-12-26 08:06:07 | 只看该作者
Help里这不都有自带例子的嘛,没有视图先用UF_DRAW_add_orthographic_view加
3
发表于 2006-12-26 20:36:08 | 只看该作者
兄弟,你用错命令了
要添加一个视图可以用一下命令:
extern int uc6481 (
const char * dwg_name,
const char * view_name,
const double * reference_pt,
const int view_status );

有问题的话,可以去www.cadway.org
我一般在那边帮人解决问题!
4
发表于 2006-12-26 20:38:15 | 只看该作者
/*
The code in the following example creates an orthographic view.
*/

#include <stdlib.h>
#include <stdio.h>
#include <uf.h>
#include <uf_defs.h>
#include <uf_draw.h>
#include <uf_obj.h>
#include <uf_part.h>
void ufusr(char *param, int *retcod, int param_len)
{
  double      reference_point[2] = {10.0, 12.0};
  int         ifail = 0;
  tag_t       drawing_tag = NULL_TAG;
  tag_t       part_tag = NULL_TAG;
  tag_t       parent_view_tag = NULL_TAG;
  tag_t       ortho_view_tag = NULL_TAG;
  char        error_message[133];
  char        *view_name = "TOP@1";    //parent view
  UF_DRAW_proj_dir_t projection_direction = UF_DRAW_project_infer;
  
  ifail = UF_initialize();
   
  if( !ifail )
      part_tag = UF_PART_ask_display_part();
            
  if( !ifail && part_tag != NULL_TAG )
      ifail = UF_DRAW_ask_current_drawing( &drawing_tag );
                                             
  if( !ifail && drawing_tag != NULL_TAG )
      ifail = UF_OBJ_cycle_by_name( view_name,
                                   &parent_view_tag );
                                 
  if( !ifail && parent_view_tag != NULL_TAG )
      ifail = UF_DRAW_add_orthographic_view( drawing_tag,
                                         parent_view_tag,
                                         projection_direction,
                                         reference_point,
                                        &ortho_view_tag );
  printf( "UF_DRAW_add_orthographic_view " );
  if( ifail )
  {
      ifail = UF_get_fail_message( ifail, error_message );
      printf( "fails. \nError is:%s\n", error_message );
  }
  else if( part_tag == NULL_TAG )
      printf( "fails.\nError is: no active part.\n" );
  else if ( drawing_tag == NULL_TAG )
      printf( "fails.\nError is: no current drawing.\n" );
  else if ( parent_view_tag == NULL_TAG )
      printf( "fails.\nError is: no parent view.\n" );
  else   
      printf( "is successful.\n" );
   
  ifail = UF_terminate();
}

我试了,不行,这个函数也是根据已经有的视图去创建一个新的视图,如果图框中没有视图,那么
if( !ifail && drawing_tag != NULL_TAG )
      ifail = UF_OBJ_cycle_by_name( view_name,
                                   &parent_view_tag );
返回得到的parent_view_tag = NULL_TAG
不能执行UF_DRAW_add_orthographic_view函数!
5
发表于 2007-4-29 17:14:53 | 只看该作者
不错
6
发表于 2007-5-5 10:15:19 | 只看该作者

顶下~好东西!

好东西!
7
发表于 2007-5-12 09:44:38 | 只看该作者
要首次添加一个视图可以用uc6481或者UF_DRAW_import_view:
uc6481 add view to drawing

extern int uc6481 (
const char * dwg_name,
const char * view_name,
const double * reference_pt,
const int view_status );


UF_DRAW_import_view

extern int UF_DRAW_import_view (
const tag_t drawing_tag,
const tag_t view_tag,
double dwg_reference_point[ 2 ],
UF_DRAW_view_info_t * view_info,
tag_t * draw_view_tag );

以下是帮助文档给出的例子:
/*
This example imports the BOTTOM view onto the drawing as an
active view, with a scale of 1.0, no anchor point.  It uses the stored
reference point.  The drawing member view inherits the model view's
boundary.
*/
#include <stdlib.h>
#include <stdio.h>
#include <uf.h>
#include <uf_defs.h>
#include <uf_draw.h>
#include <uf_draw_types.h>
#include <uf_obj.h>
#include <uf_part.h>
void ufusr(char *param, int *retcod, int param_len)
{
  int         ifail = 0;
  double      reference_point[2] = {10.0, 12.0};
  tag_t       drawing_tag = NULL_TAG;
  tag_t       part_tag = NULL_TAG;
  tag_t       view_tag = NULL_TAG;
  tag_t       draw_view_tag = NULL_TAG;
  char        error_message[133];
  char        *view_name = "BOTTOM";
  UF_DRAW_view_info_t view_info;

  view_info.view_status = UF_DRAW_ACTIVE_VIEW;
  view_info.anchor_point = NULL_TAG;
  view_info.view_scale = 1.0;
  view_info.use_ref_pt = FALSE;
  view_info.inherit_boundary = TRUE;

  ifail = UF_initialize();

  if( !ifail )
      part_tag = UF_PART_ask_display_part();

  if( !ifail && part_tag != NULL_TAG )
      ifail = UF_DRAW_ask_current_drawing( &drawing_tag );

  if( !ifail && part_tag != NULL_TAG && drawing_tag != NULL_TAG
)
  {
      ifail = UF_OBJ_cycle_by_name( view_name, &view_tag );
      if( !ifail && view_tag != NULL_TAG )
      {
          ifail = UF_DRAW_import_view( drawing_tag, view_tag,
                                       reference_point, &view_info,
                                       &draw_view_tag );
      }
  }
  printf( "UF_DRAW_import_view " );
  if( ifail )
  {
      ifail = UF_get_fail_message( ifail, error_message );
      printf( "fails. \nError is:%s\n", error_message );
  }
  else if( part_tag == NULL_TAG )
      printf( "fails.\nError is: no active part.\n" );
  else if ( drawing_tag == NULL_TAG )
      printf( "fails.\nError is: no current drawing.\n" );
  else if ( view_tag == NULL_TAG )
      printf( "fails.\nError is: invalid view tag.\n" );
  else
      printf( "is successful.\n" );

  ifail = UF_terminate();
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

GMT+8, 2024-12-31 04:54 , Processed in 0.028873 second(s), 11 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

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