AutoLisp从入门到放弃(十)


本章主要介绍一些常用的几何运算功能函数的使用。

一、角度计算(angle)

  • 函数
函数名函数功能
angle以弧度为单位返回两点之间连线与当前用户坐标系下 X 轴之间的夹角。
  • 参数
参数说明
point端点(起点)
point端点(终点)
  • 返回值
返回值说明
angle实型数据,当前坐标系下参数两点间连线与X轴之间的夹角(弧度值)。
  • 用法
(angle (getpoint) (getpoint))

二、距离计算(distance)

  • 函数
函数名函数功能
distance计算当前坐标系下两点间的直线距离。
  • 参数
参数说明
point端点(起点)
point端点(终点)
  • 返回值
返回值说明
distance实型数据,当前坐标系下参数两点间距离。
  • 用法
(distance (getpoint) (getpoint))

三、点坐标偏移计算(polar)

  • 函数
函数名函数功能
polar在当前用户坐标系下,求某点的指定角度和指定距离处的点,并返回该点。
  • 参数
参数说明
point基点(起点)
angle偏移角度(弧度制)
distance与基点point之间的距离
  • 返回值
返回值说明
point根据参数point指定点的类型,返回二维或三维点。
  • 用法
(polar (getpoint) (angle (getpoint) (getpoint)) (distance (getpoint) (getpoint)))				;; 这行代码可能过于敷衍,但是你没有看错,这是一条没有任何问题的AutoLisp代码
;; OK,为了看起来方便,还是将他分解一下吧。

(setq #ptBase (getpoint "\n请指定偏移基点:"))
(prompt "\n请指定偏移角度:")
(setq #dAngle (angle  (getpoint) (getpoint)))
(prompt "\n请指定偏移距离:")
(setq #dDistance (distance (getpoint) (getpoint)))
(setq #ptRes (polar #ptBase #dAngle #dDistance))
;; 这样一来就清晰的多了

四、计算两直线交点(inters)

  • 函数
函数名函数功能
inters求两条直线的交点。
  • 参数
参数说明
point直线1起点。
point直线1终点。
point直线2起点。
point直线2终点。
onseg如果指定为 nil,则由四个 pt 参数定义的两条线被认为是无限长的。如果省略 onseg 参数或其值不为 nil,则交点必须同时位于两条线上,否则 inters 返回 nil。
  • 返回值
返回值说明
point如果 onseg 参数存在且为 nil,则 inters 返回交点坐标,即使这个交点不在其中的一条线(或者两条线)的端点范围之内。如果忽略 onseg 参数或其值不为 nil,则交点必须同时位于两条线上,否则 inters 返回 nil。如果两条直线不相交,inters 函数返回 nil。
  • 用法
(inters (getpoint) (getpoint) (getpoint) (getpoint) nil)   ;; 用法简单,不做过多解释,示例依旧敷衍,因为我觉得都能看得懂

五、获取捕捉点(osnap)

  • 函数
函数名函数功能
osnap将某种对象捕捉模式作用于指定点而获得一个点,并返回该点。
  • 参数
参数说明
point
osmode字符串,其中包含了一个或多个有效的对象捕捉模式标志符(如 mid、cen 等),各标志符之间用逗号隔开。
  • 返回值
返回值说明
point点。如果拾取没有返回对象(如在拾取框内没有几何对象,或几何对象不能用于选定的对象捕捉模式),则返回 nil。osnap 函数返回的点取决于当前三维视图和系统变量 APERTURE 的设置。
  • 用法
(setq #ptRes (osnap (getpoint) "_end,_int"))   ;; 捕捉到端点和交点,虽然AutoLisp提供了这种方法,但是个人建议还是在代码中将捕捉模式关闭,之后通过几何计算得到精确定坐标更靠谱。当然,有些特殊情况需要处理的时候,这个东西也是真的好用的。
  • 7
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值