青华模具培训学校

 找回密码
 注册

QQ登录

只需一步,快速开始

青华模具培训学院
查看: 2307|回复: 6

[疑难] UF_MODL_create_fitted_spline求助!!急...

[复制链接]
发表于 2012-4-1 23:28 | 显示全部楼层 |阅读模式
刚学习二次开发,遇到有关散点拟合的问题,用这个函数怎么不能出结果,这个函数到底该怎么用,求高手指点!!
 楼主| 发表于 2012-4-5 12:49 | 显示全部楼层
怎么没人回复啊!!求指导!!求指导啊!!
回复 支持 反对

使用道具 举报

发表于 2012-4-5 14:13 | 显示全部楼层
你好歹得把你的源代码放上来才能看你到底错在哪里了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-4-6 23:34 | 显示全部楼层
samfkkkk 发表于 2012-4-5 14:13   K7 ?$ D# G. L
你好歹得把你的源代码放上来才能看你到底错在哪里了

* g3 d+ M' Q+ T2 t( b哦,多谢高手关注,我贴上代码求指导!!! T+ Y; m9 K' o7 Q

( Y+ \+ E. t( _! R#include <stdio.h>
$ e& I$ Q: `+ l8 ], D, \#include <uf.h>
9 Z1 v: q, k: G) Z8 y#include <uf_ui.h>5 \8 |& E! ~! P9 V4 G4 L
#include <uf_modl.h>
5 Q7 i$ r* `' c& _$ G# T; T1 H#define ptnum 5
  c2 M2 H4 n3 b0 s; U/ l9 O#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
* G$ b7 {  j# E6 q( i/ w/ }$ r, P
. \$ ~: `  L, ?9 k' istatic int report_error( char *file, int line, char *call, int irc)7 h+ @2 @/ A- y
{
- W8 j% F+ \  ]8 ?9 o4 F6 o    if (irc)
( d" n7 _. w& N6 R/ `  K    {
, n# j8 L) J2 f7 |& `  p# n        char err[133],
5 ^" X0 ~, \3 E# ]& l/ n             msg[133];
+ [( i- R5 G, P
% y! Y1 d: r* F        sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",
% C) e% ?: r' Y! N            irc, line, file);6 i$ I  P- O4 ~0 _' f& P# `
        UF_get_fail_message(irc, err);
! m: M  _1 V, C* d5 }, P" J% P3 e0 _1 l, d
        UF_print_syslog(msg, FALSE);( x; J; J% ^$ S: b7 R' j8 X
        UF_print_syslog(err, FALSE);
. o% N1 _0 g- m0 X        UF_print_syslog("\n", FALSE);  T' P0 {2 l& }' L3 q+ |  s
        UF_print_syslog(call, FALSE);
1 W* A) y0 F# H. E9 O) e0 ]        UF_print_syslog(";\n", FALSE);
- s( |* P; ~. L# X/ B: E. X) A8 \" U0 D8 K& A8 F
        if (!UF_UI_open_listing_window())% `8 U4 [" C+ L& ^( s
        {
( w, P# [6 s  ^" k  m: W            UF_UI_write_listing_window(msg);
+ |& S3 f4 w9 q: q            UF_UI_write_listing_window(err);
9 v" T2 F5 k$ ?' N8 a            UF_UI_write_listing_window("\n");
) \3 W! `/ J# G/ t2 m: _            UF_UI_write_listing_window(call);8 n9 ^9 N; i7 ~, z  _- u
            UF_UI_write_listing_window(";\n");% E! ~% V) I+ a* _4 \' z, F
        }7 ?  w& y  v* g" s+ |- v1 U( e
    }5 Z0 J( F( l  z% n$ ~* Z

- ^# k7 Q% _4 m" e    return(irc);3 x: ]& [1 N' m# g
}
5 n' b" Z; {0 x0 n' I
( V+ W) W  x6 @0 l$ w9 Z3 z4 z+ Z& p1 {! h3 _) m/ W, r3 O9 F
static void do_creat_spline(): R% @$ c5 u: t
{
) F: p3 W- i  j2 g  G; J- s        SPLINE_FIT_p_t spdata;
: @7 G0 p9 M7 L4 ~: v' Q        double sp1,
2 P- s% f" B  W% c/ c                pt[3*ptnum]={1.1000,  0.5320,  2.0000,- K4 P4 \8 G9 U0 u4 I; x
                      1.5240,  0.6789,  2.3000,
  X4 b, N- R3 A8 A+ |, l                      2.0000,  0.9000,  3.5956,, O2 W7 N" Y. n1 y, S
                      2.3456,  1.3456,  3.7890,) b3 ?4 j$ s" z1 Y- Q5 N$ ~5 G
                      3.1000,  2.4567,  3.3214};% \0 n% K  g% k7 @& a% B. A
        int poit,i;8 {# k, _8 e9 ~# ]
        tag_p_t curve_id;8 Z* W( F5 P5 ?; g% K$ X8 K$ r
        spdata->degree=3;
' ~6 @, y# d: K9 U) l; R        spdata->num_of_points=ptnum;) a; i9 C5 j1 y9 e! r7 ?
        spdata->num_of_segments=1;+ ~) X- K, p" q7 F* x2 W
        for (i=0;i<ptnum;i++)
; k( E" C9 I4 m2 q        {
6 }# K  Y) z6 t. A5 @                spdata.points[0]=pt;
* h7 s4 l" C/ x( f3 \7 |) p/ w                spdata.points[1]=pt[i+1];" n% o4 M2 E0 i  \( G$ y+ B0 X- R
                spdata.points[2]=pt[i+2];
0 H. M, O8 P) z# \* i/ D5 j        }' d* Q6 z1 k. ~. u
        UF_CALL(UF_MODL_create_fitted_spline(spdata,&sp1,&poit,curve_id));1 [# X3 a, J" {. C8 y6 |
}
1 m' i5 M* [; }! D  Y  R7 x* ^+ g
" u5 {0 [+ W7 g! P  |( @extern DllExport void ufusr( char *parm, int *returnCode, int rlen )
, }/ h: J: }7 U4 l3 J! m: [{
0 ~- R6 H' y$ N) c    if( UF_CALL(UF_initialize()) ) 4 O$ m0 \$ \+ G, V, L9 C
    {
3 o" [; m9 |9 O; t2 o        return;0 B7 {& Z+ V0 O" Z
    }6 p9 K" }  j( T; `- |
    do_creat_spline();
7 m4 W3 Y+ `; @& F8 D- w) J    UF_CALL(UF_terminate());
9 m* T6 c$ T! _}% U' K' U/ `$ q0 H2 ?, K

' \6 @' N- w, I
! Y6 r7 d4 n. ]( q9 {9 C' E  J+ Hextern int ufusr_ask_unload( void )0 X6 X/ y" {# |4 ~0 Z1 J
{
" U3 l  ?/ g& z, {6 A9 S    return( UF_UNLOAD_UG_TERMINATE );; P. s3 A: n3 i3 O
}
2 M& l+ O, ]6 q3 j' W8 {: g0 f' d5 s& t+ T. I
回复 支持 反对

使用道具 举报

发表于 2012-4-10 14:16 | 显示全部楼层
本帖最后由 samfkkkk 于 2012-4-10 14:45 编辑
  W/ S; t! l/ W
  D: ~: t5 W0 W+ L8 |8 Tdouble pt[ptnum][3]={1.1000,  0.5320,  2.0000,! ^/ G' c7 m1 _& c/ c
                      1.5240,  0.6789,  2.3000,1 Q" }8 `! R, Q
                      2.0000,  0.9000,  3.5956,
5 q- S  h' T; M* Q; @1 h4 o$ d, d                      2.3456,  1.3456,  3.7890,
) M6 N$ A( g" O1 K                      3.1000,  2.4567,  3.3214 };3 e6 B- K  J, Q- `# o) v
for (i=0;i<ptnum;i++)! N. y/ ?4 b; `2 F% |% W
        {     
4 [' J' [# m5 P! a1 w7 h6 C0 r2 _% z         spdata->points【i*3]=pt【i] [0];
+ F6 I+ H  @) }. O$ g3 O         spdata->points【i*3+1]=pt【i] [1];! h; E0 V: p; Y, o
         spdata->points【i*3+2]=pt 【i][2];
) p. R7 T) T$ u/ f7 Q: w. f        }
, J1 ]' G, E* p' e3 F) X) \
3 s7 K! k0 U  \: Q7 z0 H& H) }3 i7 m  q! |! e2 |" p  T
试试

9 m/ c6 I: s( N% u' y9 B7 b# b' w8 b
: a7 O1 R  V( x+ P0 J3 F/ k/ s5 m
补充内容 (2012-4-11 08:46):
! h1 Y/ ^& U0 Y% |2 o回家试了一下,貌似不行。。。我再想想

点评

你问的问题,是一些非常基础和简单的问题,看你的代码就知道,你根本就没有理解输入的参数是什么。 拿你的数据做了一下,可以看看结果;(你可以把你的点整到NX,然后手工拟合,看看与我动画的曲线形状是不是一样的  详情 回复 发表于 2016-7-10 16:06

评分

参与人数 1激情 +2 G币 +10 收起 理由
victor_tech + 2 + 10 助人为乐!

查看全部评分

回复 支持 反对

使用道具 举报

发表于 2015-3-10 18:50 | 显示全部楼层
楼主该问题解决没有 我现在也是这个问题 通过点生成样条曲线 谢谢
回复 支持 反对

使用道具 举报

发表于 2016-7-10 16:06 | 显示全部楼层
samfkkkk 发表于 2012-4-10 14:16. j% v7 b! B. g
double pt[3]={1.1000,  0.5320,  2.0000,
7 j0 p0 z( a# B$ v0 I                      1.5240,  0.6789,  2.3000,
- i/ i+ |' {- `: c           ...

8 r# f/ h0 z2 F6 t6 q" n. W: u你问的问题,是一些非常基础和简单的问题,看你的代码就知道,你根本就没有理解输入的参数是什么。
+ A8 q9 W& D+ k/ A9 I 拿你的数据做了一下,可以看看结果;(你可以把你的点整到NX,然后手工拟合,看看与我动画的曲线形状是不是一样的。  V/ ], ~8 |6 O$ H. q/ {
二次开发相关的资料目前在网络上少得可怜,能找到的也是一些老的MFC在搞,那些代码:
$ f4 u- h- C" v/ e9 g1、教授也是乱抄的,拿过来直接编译都是不通过的;
( r  U% ~% g* A' Y6 j: b/ L4 Y2、已经过时,建议不要学了;8 I  d3 q$ v% t$ f
3、要学就学最新版的UI界面来做二次开发。8 V' y+ U0 O: M6 e
在整个网络上,目前能将二次开发,从入门讲解做到高级的二次开发工具做出来的教程,只有我做过。0 N6 K2 r# T8 k: y" ^4 H9 q% V  O" K
有兴趣关注一下:(可以看目录,还有前面的试看教程)
2 W6 B# H- A$ A' Uhttp://www.chuanke.com/3405460-153615.html8 J  q+ \: O! @; {6 w# g  }# K
拟合曲线.gif
4 p% w  c# o9 M  T, \) q$ P5 o  z
! g, H9 }5 U0 P" h; n$ \
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|关于我们|sitemap|小黑屋|Archiver|手机版|UG网-UG技术论坛-青华数控模具培训学校 ( 粤ICP备15108561号 )

GMT+8, 2025-2-19 06:01 , Processed in 0.063691 second(s), 27 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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