LISP道路中线_如何画两条样条线间中心线之三:CAD插件/Lisp编程法
前面有介绍过两种CAD画两条样条线的中心线的方法,分别是用三维曲面提取中心线和画辅助取中心线,这两种方法。其实还有更简单的方法,就是用插件,感兴趣的可以自己找有相关功能的插件来使用。
这里提供一个。
(defun c:zx( / ent1 ent2 num p1list p2list p3list i cp p1 cv1 cv2 stp endp) (setq ent1 (car (entsel "\n选择第1对象:")))
(setq ent2 (car (entsel"\n选择第2对象:")))
(setq cv1 ent1 cv2 ent2)
(setq num (getint "\n控制点数量(越多效果越好:"))
(if (ssget "x" (list (cons 0 "POINT"))) (command "erase" (ssget "x" (list (cons 0 "POINT"))) ""))
(command "divide" ent1 num)
(setq ent1 (ssget "x" (list (cons 0 "POINT"))))
(setq p1list nil i 0)
(while (setq cp (ssname ent1 i))
(setq p1list (append p1list (list (cdr (assoc 10 (entget cp))))))
(setq i (1+ i))
)
(setq stp (vlax-curve-getStartPoint cv1) endp (vlax-curve-getEndPoint cv1))
(if (> (distance stp (nth 0 p1list)) (distance endp (nth 0 p1list)))
(setq p1list (append (list endp) p1list (list stp)))
(setq p1list (append (list stp) p1list (list endp)))
)
(command "erase" ent1 "")
(command "divide" ent2 num)
(setq ent2 (ssget "x" (list (cons 0 "POINT"))))
(setq p2list nil i 0)
(while (setq cp (ssname ent2 i))
(setq p2list (append p2list (list (cdr (assoc 10 (entget cp))))))
(setq i (1+ i))
)
(setq stp (vlax-curve-getStartPoint cv2) endp (vlax-curve-getEndPoint cv2))
(if (> (distance stp (nth 0 p2list)) (distance endp (nth 0 p2list)))
(setq p2list (append (list endp) p2list (list stp)))
(setq p2list (append (list stp) p2list (list endp)))
)
(command "erase" ent2 "")
(if (> (distance (nth 0 p1list) (nth 0 p2list)) (distance (nth 0 p1list) (nth (- num 2) p2list)))
(setq p2list (reverse p2list))
)
(setq i 0 p3list nil)
(while (and (setq cp (nth i p1list)) (setq cp1 (nth i p2list)))
(setq p3 (list (* (+ (car cp) (car cp1)) 0.5) (* (+ (cadr cp) (cadr cp1)) 0.5)))
(setq p3list (append p3list (list p3)) i (1+ i))
)(command "undo" "be")
(setq temposm (getvar "osmode"))
(setvar "osmode" 0)
(setq i 2 p1 (nth 0 p3list) cp (nth 1 p3list))
(command "pline" (trans p1 0 1) (trans cp 0 1) "")
(setq ent1 (entlast) p1 cp)
(while (setq cp (nth i p3list))
(command "line" (trans p1 0 1) (trans cp 0 1) "")
(command "pedit" ent1 "J" (entlast) "" "")
(setq p1 cp i (1+ i))
)
(setvar "osmode" temposm)(command "undo" "e")
(princ)
)
这种方法相对来说更简单,能很快生成一个近似中心线来,这段代码生成的是一个多段线。
谈家具【微信公众号:H90TJJ】采用BY-NC-SA协议进行授权 , 转载请注明:来自谈家具(www.9tjj.com):如何画两条样条线间中心线之三:CAD插件/Lisp编程法!
LISP道路中线_如何画两条样条线间中心线之三:CAD插件/Lisp编程法相关推荐
- lisp 相贯线展开_一个画两管相接相贯线的程序 - AutoLISP/Visual LISP 编程技术 - CAD论坛 - 明经CAD社区 - Powered by Discuz!...
下面的程序也可以画管子的相贯线,输入的参数D为大管直径,d为小管直径(可以等于D),B为两管的夹角,插入点为小管中心线与大管外壁的交点.该程序在R14上调试通过. (DEFUN C:XGX () (S ...
- 好分数一个等第是什么意思_老师批试卷总要在分数下面画两条横线是什么意思?...
原标题:老师批试卷总要在分数下面画两条横线是什么意思? 为什么老师改卷之后 会在分数下画两条横线呢? 你要去问老师? 别问了,可能连老师都不知道-- 来看看这位当了老师的网友怎么说的: "总 ...
- 为什么老师批改完试卷,分数下要画两条横线?今天终于知道了!
全世界只有3.14 % 的人关注了 爆炸吧知识 总有考试分数下画两条横线的习惯,原来是这样形成的! 为什么老师改卷之后 会在分数下画两条横线呢? 你要去问老师? 别问了,可能连老师都不知道-- 来看看 ...
- IOS之Label画一条删除线
IOS之Label画一条删除线 例如上面的价格100 如何对100添加删除线. 我们需要自定义一个Label,继承于UILabel系统类.在xib上对控件添加自定义Label类.LJCenterLab ...
- Cover V2将启用两条产品线 本周开始进行V2 UI开发
2月24日,DeFi保险协议Cover Protocol官方公布V2产品计划.根据该计划,Cover V2将启用两条产品线:1.点对点保险市场,与V1相同,任何人都可以成为做市商提供承保:2.保险货币 ...
- python画两条曲线_查找在matplotlib中绘制的两条曲线之间的区域(在区域之间填充)...
我有两条曲线的x和y值列表,它们都有奇怪的形状,而且我没有任何函数.我需要做两件事:(1)绘制它并对曲线之间的区域进行着色,如下图所示:(2)找到曲线之间该着色区域的总面积. 在matplotlib中 ...
- 两条波浪线符号_四年级数学上册第二单元“线的认识”作业单(附带答案)
"线的认识"作业单 一.线段.射线和直线. 1."线段.射线和直线"之间的联系与区别. 名称 形状 长度 端点 关系 2.表示方法:分别画出一条线段.射线和直线 ...
- solidworks 怎么画两条直线不连续画线
SolidWorks画直线的时候 我画完一条直线还想在旁边再画一条直线 两条直线是不相连的 要怎么画呢 我每次都是把直线点没 然后再点直线画 这样很麻烦 不知道是不是有其他的方法 答: 画完了双击鼠标
- matlab在一张图上画两条折线图,excel2013怎么在一张曲线图上绘制多条曲线?
office软件每年的更新速度很快,虽然更新后的版本肯定能够实现更新前的功能,但是由于版式方面的改进,使得使用者初次使用时不是特别得心应手.下面重点讲述一下,如何利用excel2013在同一张图中做多 ...
最新文章
- 【重磅来袭】斯坦福开源Python版NLP库Stanza:涵盖66种语言!
- C/C++中作用域详解(转)
- MySQL命名、设计及使用规范《MySQL命名、设计及使用规范》
- Mysql优化之索引优化
- 函数用法r语言_R语言中的apply函数族
- Java 设计模式 Adapter 类适配器 模式
- 51单片机读引脚和读端口测试总结
- 基于Java的网上订餐系统(附:源码 课件)
- 利用计算机画统计图教学设计,小学数学人教版四年级上册《条形统计图》教学设计及反思...
- 二分类混淆矩阵结构_「混淆矩阵」4.4.2分类模型评判指标(一) - 混淆矩阵(Confusion Matrix) - seo实验室...
- ad中按钮开关的符号_电工最常用电气元件实物及对应符号
- 钢琴乐谱怎么看?学习五线谱及其口诀
- PS如何去除图片中文字
- 联想裁员:公司不是我的家
- 牛客编程语言练习赛第三场(C++)
- 计算机蓝屏代码0xc0000020,Win10运行程序提示“损坏的映像 错误0xc0000020”解决方法图文教程...
- 辨别虚假高音质(320k/Ape/Flac)的音乐文件
- ABAP其他基本语法
- 招商头条:上海将出新规促进跨国公司地区总部发展;第二十五届兰洽会落幕 共签约507个项目
- yjh的实习生涯之自动化测试(2)---新建一个自动登录淘宝例子以及如何将java代码运行到手机上
热门文章
- Shared Control【共享控制】-Controlling Assistive Robots with Learned Latent Actions
- 目标检测舰船数据集整合
- 自然语言处理发展历程
- Mybatis向Oracle数据库写数据时报错:无效的列类型1111
- 熬夜总结了面试套路,2W字长文!
- 在thinkphp中 结合 支付宝 paypal 财付通 .
- 成都网站建设企业网站备案需要哪些资料?
- 考计算机一级要2B铅笔嘛,考试中的答题卡为什么用2B铅笔填涂,看完你就明白了...
- 什么叫做“微信式”的恋爱?
- php处理heic格式图片,电脑上怎么查看HEIC格式?一招解决HEIC转JPG,轻轻松松看图片!...