AutoLisp从入门到放弃(十)
- 一、角度计算(angle)
- 二、距离计算(distance)
- 三、点坐标偏移计算(polar)
- 四、计算两直线交点(inters)
- 五、获取捕捉点(osnap)
本章主要介绍一些常用的几何运算功能函数的使用。
一、角度计算(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提供了这种方法,但是个人建议还是在代码中将捕捉模式关闭,之后通过几何计算得到精确定坐标更靠谱。当然,有些特殊情况需要处理的时候,这个东西也是真的好用的。
AutoLisp从入门到放弃(十)相关推荐
- AutoLisp从入门到放弃(十二)
AutoLisp从入门到放弃(十二) 一.文件操作 1.打开文件(open) 2.读文件(read-line.read-char) 3.写文件(write-line.write-char) 4.关闭文 ...
- AutoLisp从入门到放弃(十四)
AutoLisp从入门到放弃(十四) AutoLisp选择集操作 AutoLisp从入门到放弃(十四) 一.ssget 1.函数说明 2.参数说明 3.代码示例 二.ssadd.ssdel 1.函数说 ...
- System Generator从入门到放弃(十)-ADC应用之音频信号采集与输出
System Generator从入门到放弃(十)-ADC应用之音频信号采集与输出 文章目录 System Generator从入门到放弃(十)-ADC应用之音频信号采集与输出 一.ADC应用之音频信 ...
- AutoLisp从入门到放弃(五)
AutoLisp从入门到放弃(五) 一.列表(LIST) 1.列表的创建 2.操作列表常用函数 二.DXF组码 1.DXF组码文件基本结构 2.DXF组码值类型 本章将介绍通过AutoLisp代码来查 ...
- AutoLisp从入门到放弃(十一)
AutoLisp从入门到放弃(十一) 一.常用字符串处理函数 1.ascii和chr函数 2.read函数 3.strcase函数 4.strcat和strlen函数 5.substr函数 6.wcm ...
- AutoLisp从入门到放弃(九)
AutoLisp从入门到放弃(九) 一.等待输入相关函数 1.getangle函数 2.getcorner函数 3.getdist函数 4.getenv函数 5.getint函数 6.getorien ...
- AutoLisp从入门到放弃(六)
AutoLisp从入门到放弃(六) 一.获取图元属性信息 二.修改图元属性信息 本章主要讲解如何通过AutoLisp代码查看.修改实体的所有属性信息,即图元信息. 一.获取图元属性信息 如果你是一个C ...
- AutoLisp从入门到放弃(七)
AutoLisp从入门到放弃(七) 一.创建图元 二.删除图元 1.command命令 2.entdel函数 本章将介绍如何在AutoLisp代码中通过直接操作实体数据库的方式来新增和删除图元. 一. ...
- AutoLisp从入门到放弃(八)
AutoLisp从入门到放弃(八) 一.修改图元图层 1.新建图层 2.删除图层 3.更改实体图层 二.修改图元颜色 本章将介绍如何使用AutoLisp操作图元的图层.颜色. 一.修改图元图层 使用l ...
最新文章
- pix2pixHD笔记
- 《移动项目实践》实验报告——Android中级控件
- css hot loader,解决安装react-hot-loader后修改css/less文件不会热更新问题
- 泽西岛的RESTful Web服务
- WPF 用Main函数方式启动程序
- 安装SQL Server2008,要重启机器,解决办法
- Win11高效日历推荐
- 斯坦福大学stanford
- Struts2的Action
- 使用电脑端360安全卫士时,不小心在加速球点击自动清理残留进程,每次打开相关进程都会自动清理 - 解决方案
- Vivado 使用方法
- python 拼音输入法_ubuntu上安装 ibus Google拼音输入法(修改一点错误)
- iOS开发调用苹果自带的地图应用
- 6个UI面试技巧让你轻松入职大公司
- 【历史上的今天】9 月 20 日:中国正式接触互联网;抖音上线;中科大成立
- 13.es slop参数实现近似匹配以及原理剖析和相关实验
- python获取大小写字母、数字,各种字符
- 苹果公司最新系统内嵌致黑客的打油诗
- 弹性与智能—下一代移动网络系统(RINGS)
- 细粒度控制Grails程序的日志输出
热门文章
- 新编大学计算机基础教程txt,新编大学计算机基础教程新大学计算机基础教程.doc...
- 无处 不在的无线智能——6g 的关键驱动与研究挑战_更低通信延时 6G是5G的十分之一...
- C++计算三角形面积
- python驼峰命名法_蛇形命名,驼峰命名,你的选择?
- 微信小程序 IOS中new Date()时间格式不兼容问题
- 知识融合:一文看懂LIMES理论基础
- 惠普品牌机P6000微型计算机,11年买的Hp pavilion p6000系列电脑,如何使内容扩容到4GB?...
- 酷睿i510400f和9400f哪个好 i510400f和9400f打游戏有区别吗
- 基于SPRINGBOOT驾校综合管理系统
- Yii2权威指南中文版及众包翻译平台