马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
本帖最后由 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)
- )
|