您现在的位置:网站首页 > 经验分享 > 基于Rhino的三维鞋业CAD软件开发[
设计师介绍:

昵称:烦夫子
类别:界面/平面设计师
年龄:38
现所在地:北京

查看该设计师的主页>>

关注好友

统计中心

主页浏览总数:24255
总积分:89
文章数:88
作品数:70

基于Rhino的三维鞋业CAD软件开发[

作者:烦夫子  更新时间: 2007-11-19   浏览人数:17802  评论:0  
分享到:
开放源码:
                            RHINO三维图形开发平台
                                     [2]
//曲线延伸

CRhinoCommand::result CCommandmyextents::RunCommand( const CRhinoCommandContext& context )
{
 for(;;) {
  
  CRhinoDoc *doc = RhinoApp().ActiveDoc();
  
  CRhinoGetObject get;
  
  if(get.GetObjects(1,0) != CRhinoGetObject::object)
   return CRhinoCommand::cancel;
  
  CRhinoObjRef ōbjref = get.Object(0);
  
  const ON_Curve *crv = ON_Curve::Cast(objref.Geometry());
        
  // 直接延长曲线
  RhinoExtendCurve ( (ON_Curve*&)crv, CRhinoExtend::Arc, 0, 5);
  
  // 曲线闭合处理
  RhinoMakeCurveClosed( (ON_Curve*)crv, 0.0 );

  double length = 8;
  
  ON_3dPoint pt1 = ON_3dPoint(0,0,0) + crv->PointAtEnd();
  
  ON_3dPoint pt2 = crv->TangentAt( crv->Domain().ParameterAt(1) ) * length + crv->PointAtEnd();
  
  ON_LineCurve lcrv(pt1,pt2);
        
  ON_NurbsCurve nbscrv,lnbscrv;

  crv->GetNurbForm(nbscrv);
 
  lcrv.GetNurbForm(lnbscrv);
  
  nbscrv.Append(lnbscrv);
  
  doc->ReplaceObject(objref,nbscrv);
 
  doc->Redraw();
  
  break;
 }
 

 return CRhinoCommand::success;
}

//
// END myextents command

(目前有0人发表看法,  我要发表评论
我要评论:
  只有登录后才能评论!
评论者: 匿名游客    (立即登录 或 注册)