iCAx开思工具箱

标题: 【求助】在一个面上偏置曲线,求助源码错误? [打印本页]

作者: xyftxwd    时间: 2004-8-3 10:52
标题: 【求助】在一个面上偏置曲线,求助源码错误?
object----〉一个边界的tag.
错误提示是:内部错误:Memory access violation
  
                UF_CURVE_ocf_data_t   offset_data;
  tag_t feature;
  
  UF_CURVE_ocf_string_data_t      string_data;
  
  string_data.string_tag = object;//ugcrv_id
  string_data.offset_direction = 1;
  string_data.num_offsets = 1;
  UF_CURVE_ocf_values_t       offset_distances1;
  strcpy(offset_distances1.string, "2.0");
  
  string_data.offset_distances = [$offset_distances1]
  
  offset_data.string_data = [$string_data]
  offset_data.num_string_data = 1;
  
  UF_CURVE_ocf_face_data_t face_data;
  face_data.face_tag = face_list->eid;
  offset_data.face_data = [$face_data]
  offset_data.cross_boundary_mode = UF_CURVE_OCF_CROSS_BOUNDARIES_NONE;
  offset_data.offset_method = UF_CURVE_OCF_CHORDAL;
  offset_data.trim_method = UF_CURVE_OCF_NO_EXTENSION;
  offset_data.span_method = UF_CURVE_OCF_SPAN_NONE;
  offset_data.dist_tol = 0.00001;
  offset_data.ang_tol = 0.00001;
  offset_data.string_tol = 0.000001;
  
  irc = UF_CURVE_create_ocf_feature([$offset_data,&feature)]
作者: xyftxwd    时间: 2004-8-5 16:06
对源码进行了修改后,出现新的错误:offset direction is not valid.
可是就选string_data.offset_direction = -1 or 1;阿,请问高手为什么阿?
  UF_CURVE_ocf_face_data_t face_data;
  
  uf_list_p_t face_list;
  int getBody = UF_MODL_ask_edge_faces(object,[$face_list)]
  if(getBody == 0)
  {
    CString str;
    face_data.face_tag = face_list->eid;
    str.Format("%d",face_list->eid);
    m_listBox.AddString(str);
  }
  else
  {
    m_listBox.AddString("failture!!");
  }
  
  UF_CURVE_ocf_data_t  offset_data;
  tag_t feature;
  
  offset_data.face_data = [$face_data]
  
  UF_CURVE_ocf_string_data_t  string_data;
  string_data.string_tag = object;//
  string_data.offset_direction = -1;
  string_data.num_offsets = 1;
  UF_CURVE_ocf_values_t       offset_distances1;
  strcpy(offset_distances1.string,"2.00");
  string_data.offset_distances = [$offset_distances1]  
  
  offset_data.string_data = [$string_data]
  offset_data.num_string_data = sizeof(UF_CURVE_ocf_string_data_t);
  offset_data.cross_boundary_mode = UF_CURVE_OCF_CROSS_BOUNDARIES;
  offset_data.offset_method = UF_CURVE_OCF_ARCLENGTH;
  offset_data.trim_method = UF_CURVE_OCF_NO_EXTENSION;
  offset_data.span_method = UF_CURVE_OCF_SPAN_NONE;
  offset_data.dist_tol = 0.01;
  offset_data.ang_tol = 0.01;
  offset_data.string_tol = 0.001;
  
  irc = UF_CURVE_create_ocf_feature([$offset_data,&feature)]
作者: xyftxwd    时间: 2004-8-6 13:38
请求帮助阿!!
作者: huashanyjj    时间: 2004-8-7 11:21
此句
offset_data.num_string_data = sizeof(UF_CURVE_ocf_string_data_t);  
还是应该是:offset_data.num_string_data =1;
  
另外如果你在ug中手动创建一个平移曲线,再获取其参数(uf_curve_ask_ocf_feature),可以发现face_tag,string_tag和程序创建的平移曲线时,选择的face_tag,string_tag是不同的(选择同一面,同一线)。也许这就是问题所在。
作者: xyftxwd    时间: 2004-8-8 10:01
huashanyjj wrote:
此句  
  offset_data.num_string_data = sizeof(UF_CURVE_ocf_string_data_t);   
  还是应该是:offset_data.num_string_data =1;  
  
  另外如果你在ug中手动创建一个平移曲线,再获取其参数(uf_curve_ask_ocf_feature),可以发现face_tag,string_tag和程序创建的平移曲线时,选择的face_tag,string_tag是不同的(选择同一面,同一线)。也许这就是问题所在。

  
我改为=1,还是内存错误阿,应该怎么解决呢?
可能是不一样,如何解决其不一样呢?
作者: huashanyjj    时间: 2004-8-8 10:49
你在ug中手动创建一个平移曲线,再获取其参数(uf_curve_ask_ocf_feature),可以发现face_tag,string_tag和程序创建的平移曲线时,选择的face_tag,string_tag是不同的(手动创建和程序创建时选择同一面,同一线)。也许这就是问题所在。
作者: Maik    时间: 2004-8-12 16:38
irc = UF_CURVE_create_ocf_feature([$offset_data,&feature)]  
这个函数在那个头文件里?
作者: huashanyjj    时间: 2004-8-12 17:27
uf_curve.h
作者: xyftxwd    时间: 2004-8-14 12:12
怎么解决呢?




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