vitalgg 发表于 2023-5-4 18:38:13

从图形中提取出矩形, 支持有冗余点的矩形。

本帖最后由 vitalgg 于 2023-5-5 15:20 编辑

从图形中提取出矩形


(sssetfirst nil (pickset:from-list(vl-remove-if-not 'curve:rectanglep(pickset:to-list (ssget '((0 . "lwpolyline"))))))

在矩形的边上有多余的点的矩形,经过优化多段线函数 curve:optimize-lwpl 处理,也能轻松识别.
(sssetfirst
nil
(pickset:from-list(vl-remove-if-not
                      'curve:rectanglep
                      (mapcar 'curve:optimize-lwpl(pickset:to-list (ssget '((0 . "lwpolyline"))))))))
函数 curve:rectanglep 源码:
https://gitee.com/atlisp/atlisp- ... urve/rectanglep.lsp



http://bbs.mjtd.com/data/attachment/forum/202303/01/225843akwo1c98o9qko9ko.png

https://atlisp.cn/static/videos/rectanglep.mp4



Trouble12138 发表于 2023-5-4 19:12:14

如何合为一个

vitalgg 发表于 2023-5-4 20:43:41

Trouble12138 发表于 2023-5-4 19:12
如何合为一个

安装一个@lisp,就可以自动载所需的函数。
为什么非要合成一个文件?

所有函数在开源的 @lisp函数库中.
https://gitee.com/atlisp/atlisp-lib

Trouble12138 发表于 2023-5-4 20:57:54

下载了,但是不知道用什么命令

Trouble12138 发表于 2023-5-4 20:59:54

(sssetfirst nil (pickset:from-list(vl-remove-if-not 'curve:rectanglep(pickset:to-list (ssget '((0 . "lwpolyline"))))))视频中输入这个,但是我用不行,出现视频中那个奇怪的图形,但是不能框选

Trouble12138 发表于 2023-5-4 21:03:42

桌面\1683205381367.jpg

vitalgg 发表于 2023-5-5 08:03:48

Trouble12138 发表于 2023-5-4 20:59
(sssetfirst nil (pickset:from-list(vl-remove-if-not 'curve:rectanglep(pickset:to-list (ssget '((0...

这是在命令行直接输入代码。
需要autolisp环境支持相关的函数。
看我签名第一个链接。进入安装即可。

vitalgg 发表于 2023-5-5 15:39:32

复杂矩形也能支持。
页: [1]
查看完整版本: 从图形中提取出矩形, 支持有冗余点的矩形。