青华模具培训学校

 找回密码
 注册

QQ登录

只需一步,快速开始

青华模具培训学院
查看: 2309|回复: 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
+ L4 @7 Z6 F, Z: d你好歹得把你的源代码放上来才能看你到底错在哪里了

: W  I/ i/ u( [# M( G哦,多谢高手关注,我贴上代码求指导!!# s' v2 `& }2 P0 t
$ Y6 x, w' _2 L2 e8 M2 z6 L
#include <stdio.h>
% D; _; K/ G, Q4 r#include <uf.h>" b( ~& F* y! e! K. G
#include <uf_ui.h>
. G- G) _( }: e& a1 i#include <uf_modl.h>
' n* p! }' E/ T4 I- v( R* c#define ptnum 52 \  E* d7 b0 p4 B4 W
#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))# B+ k6 X( D/ Q
0 I' |  e) A$ y! A) }* X+ ?
static int report_error( char *file, int line, char *call, int irc)
( _8 o8 d3 d8 K) B* j0 v5 b{" C( x7 c/ A7 y$ \8 `  z/ D' W6 D
    if (irc), g/ Q& f; a  {  E' @
    {! k+ O" W/ S* I" @( s& y6 F) r
        char err[133],
8 w$ O# a, o& H: e" n) R+ q' O             msg[133];7 h( D2 {1 K$ C  q# G; Q+ v  M

, v0 \. U9 M0 T        sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",
. Z& q- P$ P  \            irc, line, file);" E; w" P' \: v7 i
        UF_get_fail_message(irc, err);6 p7 @' O( K; n7 V
& b6 S0 p7 {' |0 }& t( U+ l4 M* R
        UF_print_syslog(msg, FALSE);
6 y! K, I4 {4 ]% K1 X        UF_print_syslog(err, FALSE);
1 s) K* I9 X" R        UF_print_syslog("\n", FALSE);! g9 F- }$ R; {9 {; {
        UF_print_syslog(call, FALSE);
. h0 C. I1 m8 i- z        UF_print_syslog(";\n", FALSE);
; E: v7 h) \3 k  l, v1 p: b2 s" x1 P- T1 f" M
        if (!UF_UI_open_listing_window())% D. M7 m; M) ?5 P
        {! |+ R/ A0 @7 z$ L0 [' ?3 |
            UF_UI_write_listing_window(msg);
/ I3 C8 w7 V7 N: d2 q! R  ~/ m7 n! f            UF_UI_write_listing_window(err);# ~7 @2 ?9 N( e7 q/ E: [3 c
            UF_UI_write_listing_window("\n");
9 I6 i- E, v  F5 l- @& r            UF_UI_write_listing_window(call);3 Y4 D# N/ m# d+ d$ D
            UF_UI_write_listing_window(";\n");
. S1 B% Q. j- [. Q        }
3 F+ ^1 A5 [9 ?2 M! |    }
* ^2 `  M/ }1 e" ]/ e" ~6 g& }% S$ T' y. @9 d# y- p& k# p) d+ d3 {3 s
    return(irc);2 w5 F" l& H' a2 H% t  C& C
}
  V: g- u/ R' X( d; u
: P  W1 w+ y* S$ S+ C& o4 X2 a7 x+ L3 M3 L
static void do_creat_spline()& v+ K% J4 [" \% H) }4 d
{+ m3 }0 b7 N& f2 s; Q% y, M
        SPLINE_FIT_p_t spdata;
) K% o' {' Q" ~8 p4 }        double sp1,+ _& U" N+ `% r2 \
                pt[3*ptnum]={1.1000,  0.5320,  2.0000,
  g9 U& N9 v" _( ^1 W! A6 G& I/ `                      1.5240,  0.6789,  2.3000,/ x! C- }. |4 i. [
                      2.0000,  0.9000,  3.5956,
! F( c1 I8 x# B/ ~9 V, T                      2.3456,  1.3456,  3.7890,
- Y  D3 |6 U/ [: T+ R                      3.1000,  2.4567,  3.3214};/ K! b( O7 U' u- M, W' p# s+ D- d
        int poit,i;
# d$ R# H/ D  Y' F        tag_p_t curve_id;1 c  r" q* r7 e
        spdata->degree=3;
* z* K& E+ f9 d7 X- f# z        spdata->num_of_points=ptnum;
' R7 \$ R% f) j/ X, S- ~        spdata->num_of_segments=1;
5 S/ E- W$ K' t3 O  g        for (i=0;i<ptnum;i++)
5 T5 n) N% g6 L6 q7 x9 C7 M        {: e0 [" o; U; [- v4 s
                spdata.points[0]=pt;
  D2 Z- ?# [: a( O  w6 @                spdata.points[1]=pt[i+1];$ r% Q3 |/ p: i0 p7 _- Q- D! }
                spdata.points[2]=pt[i+2];1 L- n7 i( v( I& X) a% ?6 t
        }* }  V0 d3 u% _1 c$ N/ b# m
        UF_CALL(UF_MODL_create_fitted_spline(spdata,&sp1,&poit,curve_id));3 W+ c$ i: ]+ Z* d4 t( \# n
}
7 O% [. A2 d1 {5 d7 [
6 N5 ]+ k6 s) f  _extern DllExport void ufusr( char *parm, int *returnCode, int rlen )
, n* a/ @3 \4 L2 m( ~% w6 R# x{
  m3 P2 g5 z  l  t* s- ]" }2 }    if( UF_CALL(UF_initialize()) ) 1 t: h7 n) e9 q; M* z( A& o$ o
    {! Z! F- R" d, H# r$ D$ B* N5 i
        return;
$ H8 T8 \$ H. c) g" A1 Q    }
& N) p0 g0 L. J" x$ \    do_creat_spline();
: L3 h4 C& o, i. v4 N" Z0 o" E    UF_CALL(UF_terminate());/ r+ A! q; H+ x# E
}1 h# ~* B  G* {& b1 x( @# _
0 v! m8 D3 u) r7 k

' J( B" l8 n: t5 F6 x& Pextern int ufusr_ask_unload( void )
5 H6 I' L! K' m6 k8 }( }. F{
& F1 p$ W  @' n3 ]    return( UF_UNLOAD_UG_TERMINATE );7 K* q4 r2 H7 ?6 O; k& f
}0 O6 o7 o2 ?# d' @

+ `6 E! B' F& z1 e1 C3 u3 R7 y2 ?& Z0 v
回复 支持 反对

使用道具 举报

发表于 2012-4-10 14:16 | 显示全部楼层
本帖最后由 samfkkkk 于 2012-4-10 14:45 编辑
, K) Q8 ?2 B. w* l/ l; G( Y/ t0 n% Y  }( m* G6 ?6 `- k8 P
double pt[ptnum][3]={1.1000,  0.5320,  2.0000,! D" E7 r8 M: Z2 z' _
                      1.5240,  0.6789,  2.3000,7 F1 g2 k1 V. p5 g
                      2.0000,  0.9000,  3.5956,
: b" [' m9 o8 U. ]5 i                      2.3456,  1.3456,  3.7890,, x0 `2 v* s$ v
                      3.1000,  2.4567,  3.3214 };
$ \: b' U0 `8 ]3 x6 Hfor (i=0;i<ptnum;i++)
' F+ x  h2 H8 c5 M        {     . X( F- L( U4 m
         spdata->points【i*3]=pt【i] [0];
; R/ K. ^  ~& f0 q6 H" f3 G4 h         spdata->points【i*3+1]=pt【i] [1];9 e) g& w' J0 j: k. G' \4 ?
         spdata->points【i*3+2]=pt 【i][2];
# h5 F+ F7 @% j. j  j        }! b) O3 k0 x2 H$ |; `
5 I: b5 {8 E# Z, D: z

& N4 o8 O8 t4 {试试

; [  q& G& S3 e, l' ?4 a( H4 E' c& G5 I& [& \* s( r; S! a0 W: n5 H) [/ d
) n, Q" p( n7 j) Z  Q0 S
补充内容 (2012-4-11 08:46):
. g/ L8 W3 E: w& D1 a  m- |6 z8 g回家试了一下,貌似不行。。。我再想想

点评

你问的问题,是一些非常基础和简单的问题,看你的代码就知道,你根本就没有理解输入的参数是什么。 拿你的数据做了一下,可以看看结果;(你可以把你的点整到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
5 b$ m! s3 y3 R( y7 [double pt[3]={1.1000,  0.5320,  2.0000,4 r2 j' V) X/ a1 k& {/ A
                      1.5240,  0.6789,  2.3000,- ], N% d  g( g  e) E7 k. r7 w
           ...
2 a$ G2 Y3 U; z$ m' Q, o( X6 ^4 p
你问的问题,是一些非常基础和简单的问题,看你的代码就知道,你根本就没有理解输入的参数是什么。  V* w8 Q2 x2 D7 C# C2 \% U+ \
拿你的数据做了一下,可以看看结果;(你可以把你的点整到NX,然后手工拟合,看看与我动画的曲线形状是不是一样的。- ]- a8 a" I" q8 L3 B& M
二次开发相关的资料目前在网络上少得可怜,能找到的也是一些老的MFC在搞,那些代码:
) u& k/ Q4 C' T; f% e, L1、教授也是乱抄的,拿过来直接编译都是不通过的;
  a* o6 y. W6 @. \6 ~2、已经过时,建议不要学了;
3 n+ h+ r# Z( `3、要学就学最新版的UI界面来做二次开发。
) K4 c- c! X/ ?% s+ Y# G 在整个网络上,目前能将二次开发,从入门讲解做到高级的二次开发工具做出来的教程,只有我做过。
( n9 R- c- b4 n; ~8 D; P* f8 o 有兴趣关注一下:(可以看目录,还有前面的试看教程)3 v" b9 U( _& K* v
http://www.chuanke.com/3405460-153615.html
: Z$ N0 ^" l" {) N1 E 拟合曲线.gif
6 u% N0 t9 `6 I3 T+ W
1 U# w+ O' z: O2 P) ?
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-2-19 06:49 , Processed in 0.054690 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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