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

iCAx开思网

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

[求助] UG5.0二次开发中创建一个二维工程视图(大虾请进)

[复制链接]
跳转到指定楼层
1
发表于 2009-4-8 17:26:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
使用的例子是:《图表详解UG NX二次开发》第11章的例子(11.4.1)

代码如下:
#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] = {70.0, 160.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        *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 = FALSE;
view_info.transfer_annotation = TRUE;
UF_DRAW_view_prfs_t view_display_parms;
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 );
   UF_DRAW_delete_view_label ( view_tag );
   UF_DRAW_set_view_display(drawing_tag,&view_display_parms);   
   UF_DRAW_update_one_view(drawing_tag,draw_view_tag);
  }
}
ifail = UF_terminate();
}
1.在投影之前,UG中已经建立了一个三维模型,而且已经进入图纸空间(SH1
2.执行ImportView.dll
3.应该是俯视图(X-Y平面)出现在图纸上,但是我运行的时候什么都没有显示。
问题:
1.如何进入图纸空间
是不是点击“开始”-》“制图”-》确定
2.请大虾们试试这个例子,在UG5.0下到底可不可以运行。
我调试过这个程序,各条语句都运行了,但是图面就是没有反应。无奈啊!!
请大虾们帮帮忙,小弟不胜感激!!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 赞一下!赞一下!
2
发表于 2009-4-9 11:05:42 | 只看该作者
哪位老哥指点一下啊!
3
发表于 2009-4-10 11:07:01 | 只看该作者
高人们,显显灵吧。。!@#¥@#!@
俺呼唤你们~~
4
发表于 2009-4-10 17:14:58 | 只看该作者
这个简单嘛。。。你设置几个提示的断点,看看你是不是真的得到了viewtag或drawingtag,一点点调试,这么简单的功能总是能检查出来的。。
5
发表于 2009-4-10 21:34:08 | 只看该作者
最后找到了可能出现问题的原因了。运行到
UF_DRAW_import_view( drawing_tag, view_tag,reference_point, view_info,  &draw_view_tag );
语句的时候调试显示可能出现了内存错误,没有强制跳出。
另看到一个英文网站上说UG V15.0修复了一个引入视图错误。
而我看到帮助文档上写的是V13.0.可能这个错误在13.0没有修复,所以出了问题。
对于这两个有点疑问。UG5.0到底是什么版本的,引入视图这个问题有没有被修复?怎么才能用上V15.0这个已经修复的版本?
6
发表于 2009-4-14 11:15:18 | 只看该作者
哪位大哥做成功过的出来帮小弟讲解一下啊~~
7
发表于 2009-11-28 14:23:15 | 只看该作者
请问楼主问题解决了吗?
小弟如今也碰到这样的问题
添加视图在5.0以下的版本可以运行,但在5.0上就不行\
怎么解决呢?
也请高手指点一下
8
发表于 2009-12-30 21:44:09 | 只看该作者
it is easy.......
9
发表于 2009-12-31 09:46:15 | 只看该作者
确实有这个问题,我搞很久才搞出来了,主要用到的函数如下:
        uc6464("", "",  "Bottom");//比如要出俯视图
        uc6450("", "NewBottom", 0, 0);//
        tag_t tPrtDisplay = UF_PART_ask_display_part();
        tag_t tView = NULL_TAG;
       UF_OBJ_cycle_by_name_and_type(tPrtDisplay,  "NewBottom", UF_view_type, TRUE, &tView);
       UF_DRAW_import_view();
10
发表于 2010-1-1 18:40:46 | 只看该作者
[local]1[/local]

本帖子中包含更多资源

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

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

GMT+8, 2024-12-26 20:53 , Processed in 0.030412 second(s), 11 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

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