| 
本帖最后由 st788796 于 2014-11-1 08:05 编辑
×
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册 
    
 
 AcGeCircArc3d & set( const AcGeCurve3d& curve1, const AcGeCurve3d& curve2, double radius, double& param1, double& param2, Adesk::Boolean& success); | curve1 | 输入任意3D曲线1 |  | curve2 | 输入任意3D曲线2 |  | radius | 输入弧线半径 |  | param1 | 输入曲线1上弧线的高程曲线参数值 |  | param2 | 输入曲线2上弧线的高程曲线参数值 |  | success | 输出表示计算弧线是否成功 | 
 修改弧线的定义使弧线与两条输入曲线相切并含有指定半径。这个函数总是返回弧线,弧线的终点是和“param1”与“param2”相符的两输入曲线上的点。如果函数返回“success”的值是Adesk::kFalse,则函数未改变对象。 
 其中的参数表示计算圆的方向,即在那一边计算相切圆,只好i一个参考值 CAD中命令为 命令: cc CIRCLE 指定圆的圆心或 [三点(3P)/两点(2P)/相切、相切、半径(T)]: 
 用 Ge 函数完成 主要的函数是: (xdge::setpropertyvalue gcc "set" ge1 ge2 d pam1 pam2) 
 
  (defun c:tt (/ e1 e2 ge1 ge2 gcc pam1 pam2 d info)
  (if (and (setq e1 (xdrx_entsel
                      "\nPick Curve: "
                      '((0 . "*LINE,ARC,CIRCLE,ELLIPSE"))
                    )
           )
           (setq e2 (xdrx_entsel
                      "\nPick Curve: "
                      '((0 . "*LINE,ARC,CIRCLE,ELLIPSE"))
                    )
           )
           (setq d (getdist (cadr e1) "\nRadius: "))
           (setq pam1 (apply 'xdrx_curve_getparamatpoint e1)
                 pam2 (apply 'xdrx_curve_getparamatpoint e2)
           )
           (setq ge1 (xdge::constructor (car e1)))
           (setq ge2 (xdge::constructor (car e2)))
           (setq gcc (xdge::constructor
                       "kCircArc3d"
                       '(0.0 0.0 0.0)
                       '(0.0 0.0 1.0)
                       1.0
                     );_创建两个临时Ge圆
           )
           (setq info (xdge::setpropertyvalue gcc "set" ge1 ge2 d pam1 pam2))
      )
    (progn
      (xdge::entity:make gcc)
      (xdge::free)
      ;;(princ info)
    )
  )
  (princ)
)
 |