iCAx开思工具箱

标题: 求助,曲线的开头和结尾怎么判断? [打印本页]

作者: XUSIR98    时间: 2007-3-11 22:21
标题: 求助,曲线的开头和结尾怎么判断?
#include <stdio.h>
#include <stdlib.h>
#include <uf.h>
#include <uf_ui.h>
#include <uf_disp.h>
#include <uf_curve.h>
#include <uf_drf.h>
#include <uf_modl.h>
#include <uf_disp.h>
#include <uf_obj.h>
#include <uf_csys.h>

#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);
}


static void do_ugopen_api(void)
{   
        while(true)
        {
   
         char message[]="程序 BY XXM";
     char title[]="请选择曲线对象 -4MM";
     int  scope=UF_UI_SEL_SCOPE_NO_CHANGE;
         int  response;
         tag_t object;
         double  cursor[3];
     tag_t view;
     UF_CALL(UF_UI_select_with_single_dialog (
                                              message, //这里添提示栏的数据
                                              title, //这里添对话框的数据
                                              scope,
                                                              NULL,//初始化设置函数,可以定义类型
                                              NULL,
                                              &response, //按钮返回值
                                              &object,
                                              cursor,
                                                              &view )
                                                                                          );

      UF_CALL(UF_CURVE_edit_length (
                                    object,
                                    1,
                                    -4,
                                    1,
                                    UF_CURVE_NATURAL_SHAPE)
                                                            );

     UF_CALL(UF_DISP_set_highlight(object,
                                           0)
                                                                   );
         if(response==UF_UI_CANCEL)
         {
                break;
         }
        }
   
}

void ufusr(char *param, int *retcode, int param_len)
{
  if (!UF_CALL(UF_initialize()))
  {
    do_ugopen_api();
    UF_CALL(UF_terminate());
  }
}
int ufusr_ask_unload(void)
{
  return (UF_UNLOAD_IMMEDIATELY);
}
上面是我写的程序,我想做一个像延伸曲线的命令,遇到一个问题,怎么判断所选曲线的开头,我只想要鼠标选的一端减少-4MM!
谢谢!
作者: missing914    时间: 2007-3-21 17:15
给个思路,你选择这条线的时候不是有返回鼠标点吗,
通过这个点对线进行比较,判断选择点距离哪个端点最近
再去分析这个点是线的起始点还是结束点,
根据分析结果判断UF_CURVE_edit_length函数的第4各参数是
选1还是选2。
如有问题可发邮件致derek@ugapi.com或登陆www.ugapi.com发表问题。
作者: XUSIR98    时间: 2007-3-21 22:43
谢谢了!我试一下




欢迎光临 iCAx开思工具箱 (https://t.icax.org/) Powered by Discuz! X3.3