资源简介
本示例演示了从文件中读取数据点并把读取的点在UG中画出来,然后根据每个截面上的点拟合成样条曲线并对曲线进行光顺等操作,最后通过曲线创建曲面的过程。
代码片段和文件信息
//The following program was created by Northwestern Polytechnical University in 2007.
#include “StdAfx.h“
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define UF_CALL(X) (report( __FILE__ __LINE__ #X (X)))
static int report( char *file int line char *call int irc)
{
if (irc)
{
char messg[133];
printf(“%s line %d: %s\n“ file line call);
(UF_get_fail_message(irc messg)) ?
printf(“ returned a %d\n“ irc) :
printf(“ returned error %d: %s\n“ irc messg);
}
return(irc);
}
tag_t SmoothSpline(tag_t spline_tag)
{
UF_CURVE_spline_t spline_data;
int cont_order;
double dist_toler ang_toler;
double smooth_param = 1.2;
int num_states;
UF_CURVE_state_p_t states;
tag_t output_tag;
UF_CALL(UF_CURVE_ask_spline_data(spline_tag&spline_data));//get spline_data
cont_order=2;
dist_toler=smooth_param;
ang_toler=360;
UF_CALL( UF_CURVE_smooth_spline_data
(&spline_datacont_orderdist_tolerang_toler&num_states&states));//光顺曲线
UF_CALL(UF_CURVE_create_spline(&spline_data&output_tag&num_states&states));
//光顺以后重新生成曲线
UF_OBJ_set_color(spline_tag 1);
UF_free(spline_data.knots);
UF_free(spline_data.poles);
UF_free(states);
return output_tag;
}
void CreateSheetbody(tag_t *spline)
{
int i;
UF_STRING_t s_section s_spine;
int patch = 2 alignment = 1;
double value[6];
int vdegree = 3 vstatus = 0 body_type = 1;
UF_FEATURE_SIGN boolean = UF_NULLSIGN;
double tol[3] = {0.0010.5*PI/180.00.001};
tag_t c_face_id[2] = {NULLNULL};
int c_flag[2] = {00};
tag_t body_obj_id;
UF_MODL_init_string_list(&s_section);
UF_MODL_create_string_list(6 6 &s_section);
s_section.num = 6;
for(i=0; i<6; i++)
{
s_section.string[i] = 1;
s_section.dir[i] = UF_MODL_CURVE_START_FROM_BEGIN;
s_section.id[i] = spline[i];
}
UF_MODL_create_thru_curves(&s_section &s_spine &patch &alignment value &vdegree
&vstatus &body_type boolean tol c_face_id c_flag &body_obj_id);
UF_MODL_free_string_list(&s_section);
}
static void do_ugopen_api(void)
{
FILE *fp;
int i j;
char filename[100];
double point[3];
tag_t t_pnt;
tag_t spline[6];
double pnt[6][300];
int num_points = 100;
int opt=1;
for (i=0; i<6; i++)
{
sprintf(filename “E:\\slice%d.txt“ i);
fp = fopen(filename “r“);
j = 0;
if (fp!=NULL)
{
while (!feof(fp))
{
fscanf(fp “%lf %lf %lf“ &point[0] &point[1] &point[2]);
UF_CURVE_create_point(point &t_pnt);
pnt[i][3*j] = point[0];
pnt[i][3*j+1] = point[1];
pnt[i][3*j+2] = point[2];
j++;
}
FTN(uf5080)(&opt &num_points pnt[i] &spline[i]);
spline[i] = SmoothSpline(spline[i]);
}
else
uc1601(“Cannot
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3325 2007-12-26 21:07 Create_Surface\chapter5_blade.cpp
文件 102472 2007-11-07 16:30 Create_Surface\chapter5_blade.dll
文件 4250 2007-11-07 09:37 Create_Surface\chapter5_blade.dsp
文件 553 2007-11-06 22:12 Create_Surface\chapter5_blade.dsw
文件 50176 2007-12-26 20:52 Create_Surface\chapter5_blade.ncb
文件 49664 2007-12-26 20:52 Create_Surface\chapter5_blade.opt
文件 1243 2007-11-07 16:30 Create_Surface\chapter5_blade.plg
文件 211 2006-07-09 11:07 Create_Surface\StdAfx.cpp
文件 1447 2006-07-09 11:07 Create_Surface\StdAfx.h
目录 0 2010-04-17 13:07 Create_Surface
----------- --------- ---------- ----- ----
213341 10
- 上一篇:电机控制FOC算法方框图
- 下一篇:DHCP snooping代码
相关资源
- 基于OpenGL的B样条曲线曲面的绘制
- ippicv_2017u2_lnx_intel64_20170418.tgz
-
免费汇编工具MASM、li
nk、Debug - xilinx license vivado 2017.2 可以使用
- FastDFS与 spring 整合使用 Nginx 来显示图
- NXP公司LPC17XX系列的 DHT11驱动
- VHDL 4*4矩阵键盘源程序
- OpenGL的B样条、贝塞尔曲线和贝塞尔曲
- 天线基本知识及应用
- Xilinx ISE11.1的跑马灯程序,基于Spart
- Isight集成UG和Ansys(包含ugupdata元代表
- basGDIPlus.bas
- nginx for mt7621a (newifi3 d2) openwrt 18.
- mac-BaiduNetdiskPlugin.zip
- Xilinx ISE 10.1 的注册码及IP核的破解文
- PCIe Solutions on Xilinx FPGAs 初学者指南
- sphinx使用rt实时索引源码
- NURBS基函数
- Xilinx ISE 14.5 和 Vivado License 文件
-
Openxm
l -
Openxm
l白皮书译文 - nginx优化 突破十万并发
- UG NX 与 Opengl联合编程
- register_vugen.bat
- DAC904采用xilinx的FPGA的DCM IP核进行开发
- Notepad++ 64位 PluginManager
- turbo debugger 5.5
- register_vugen.bat文件
- Unity UGUI中复用率最高的滚动列表,不
- Hdg Remote Debug
评论
共有 条评论