找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1388|回复: 4

[求助] 变复线后的图形,用(xdrx-polyline-compress e 7)消除不掉中间点

[复制链接]

已领礼包: 202个

财富等级: 日进斗金

发表于 2020-9-29 08:39:11 | 显示全部楼层 |阅读模式
悬赏20D豆未解决
(defun c:tt (/ ss e)
        (if        
                (and (xdrx-setvar "picksethome" 2)
                        (setq ss (xdrx-ssget "\n框选框架柱计算配筋平面图:<右键退出>" ":L" '((0 . "lwpolyline")(8 . "柱,柱虚线")(70 . 0)(-4 . "<=")(90 . 6))))
                );;;and
                (progn
                        (xdrx-begin)
                        (xdrx-curve->polyline ss)
                        (xdrx-setsstodb ss 0)
                          (while (setq e (xdrx-getentdata 0))
                                (xdrx-polyline-compress e 7)
                        );;;while       
                        (xdrx-end)
                        (princ)
                );;;progn
        );;;if
        (princ)
)




1111111111111111111.png

测试图111_t3 - 副本.rar

81.95 KB, 下载次数: 12, 下载积分: D豆 -1 , 活跃度 1

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 40个

财富等级: 招财进宝

发表于 2021-2-4 05:34:41 | 显示全部楼层
试试用最新的API,然后反馈下结果

点评

用最新版的api还是一样。中间的一个点消除不掉。  详情 回复 发表于 2021-2-5 15:53
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 202个

财富等级: 日进斗金

 楼主| 发表于 2021-2-5 13:53:24 | 显示全部楼层
好的,我测试下。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 202个

财富等级: 日进斗金

 楼主| 发表于 2021-2-5 15:53:21 | 显示全部楼层
newer 发表于 2021-2-4 05:34
试试用最新的API,然后反馈下结果

用最新版的api还是一样。中间的一个点消除不掉。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 202个

财富等级: 日进斗金

 楼主| 发表于 2021-2-5 16:00:21 | 显示全部楼层
用下面我自己设计的这段程序就能够消除掉中点的点。
(defun get:polyline:numbers(e / inx inxs p p- p+ lst)
        (xdrx-setvar "tolequalvector" 1.0)
        (xdrx-curve-setclosed e)
        (xdrx-polyline-compress e)
        ;;;经测试,此处重复2次足够了,因此定义为2
        (repeat 2
                (setq inx (xdrx-polyline-numverts e))
                (while (>= (setq inx (1- inx)) 0)
                        (setq inxs (xdrx-getpropertyvalue e "-index+" inx)
                                p (xdrx-polyline-getpointat e inx)
                                p- (xdrx-polyline-getpointat e (car inxs))
                                p+ (xdrx-polyline-getpointat e (cadr inxs))
                                lst
                                (list
                                        (list p- p)
                                        (list p p+)
                                        (list p- p+)
                                );;;list
                        );;;setq
                        (if (or (vl-some '(lambda(x) (equal (car x) (cadr x) 1e-3)) lst)
                                (xdrx-vector-isparallel (mapcar '- p p-) (mapcar '- p p+))
                                );;;or
                                (xdrx-polyline-removevertexat e inx)
                        );;;if
                );;;while
        );;;while
        (xdrx-polyline-numverts e)
);;;defun
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-12-23 00:47 , Processed in 0.397388 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表