找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 5050|回复: 6

[工具] cass插件LSP,每隔一定距离提取一个点的坐标

[复制链接]

已领礼包: 7个

财富等级: 恭喜发财

发表于 2019-6-23 14:45:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
有没有大神有思路,就是选中一条线,选择线上点之间要间隔的距离,比如5米、10米、20米的选择。选择后按照间隔的距离生成X Y坐标文件,当然带点号更好。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 7个

财富等级: 恭喜发财

 楼主| 发表于 2019-6-23 15:01:23 | 显示全部楼层
说白了就是多段线,按距离加密节点。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 511个

财富等级: 财运亨通

发表于 2019-6-24 00:27:04 | 显示全部楼层
等分功能即可实现,这里给出另类等分方法。
选好保存坐标文件的位置,关闭后可再打开使用。
可设置第1段的长度(若不需要,输入0即可),后面的按输入的等分长度分割。
用圆和数字标注分割点。标注颜色1为红色2为绿色,不输入时置为紫色。
支持直线、多线段、圆弧、样条曲线,不支持闭合线条。
(defun c:me1( / tcst e ee p1 p2 x1 y1 d0 pt d1 p p3 p4 e2 n2 p5 p6 s0 s1)
        (setvar "OSMODE" 0)
        (setq fil (getfiled "坐标文件保存位置" "" "txt" 33))
        (setq fL (open fil "w"))
        (setq ee (entsel "\n点击线条的起始端:"))
        (setq pt (cadr (grread t)))
        (setq p1 (vLax-Curve-getStartPoint (car ee)) p2(vLax-curve-getEndPoint (car ee)))
        (setq see (vlax-curve-getdistatpoint (car ee) p2))
        (setq pt1 (vlax-curve-getclosestpointto (car ee) pt))
        (setq d1 (vlax-curve-getdistatpoint (car ee) pt1))
        (setq d2 (- see d1))
        (setq p0 (if (< d1 d2) p1 p2))
        (if (setq zz (getint "\n选择标注圆和文字的颜色:1红2绿")) (setq zz (fix zz))(setq zz 0 ))
        (cond ((= zz 1)(VL-CMDF "CECOLOR" "1"))((= zz 2)(VL-CMDF "CECOLOR" "3"))(t (VL-CMDF "CECOLOR" "6")))
        (if (null Len)(setq len 2000.0))
        (if (setq d0 (getdist (strcat "\n输入等分长度<" (rtos len 2 2) ">: ")))        (setq len d0)        )
        (if (null Ls)(setq Ls 0.0))
        (if (setq d0 (getdist (strcat "\n输入第一段的长度<" (rtos Ls) ">:"))) (setq Ls d0))
        (if (setq i (getint "\n输入起始桩号")) (setq i (fix i))(setq i 1))
        (vl-cmdf "circle" p0 (/ len 10))
        (vl-cmdf "text" "j" "m" p0 (/ len 10) 0.0 (rtos i))
        (setq st (strcat (rtos i) "\t" (rtos (/ (car p0) 1000) 2 3) "\t" (rtos (/ (cadr p0) 1000) 2 3)) i (1+ i))
        (write-Line st fL)
        (if (= p0 p1)
                (progn
                        (setq pbr (vlax-curve-getpointatdist (car ee) Ls))
                        (if (> ls 0.0)(progn
                                (vl-cmdf "circle" pbr (/ len 10))
                                (vl-cmdf "text" "j" "m" pbr (/ len 10) 0.0 (rtos i))
                                (setq st (strcat (rtos i) "\t" (rtos (/ (car p0) 1000) 2 3) "\t" (rtos (/ (cadr p0) 1000) 2 3)) i (1+ i))
                                (write-Line st fL)        ))
                        (setq sss (+ ls len))
                        (while (< sss see)
                                (setq p0 (vlax-curve-getpointatdist (car ee) sss))
                                (vl-cmdf "circle" p0 (/ len 10))
                                (vl-cmdf "text" "j" "m" p0 (/ len 10) 0.0 (rtos i))
                                (setq st (strcat (rtos i) "\t" (rtos (/ (car p0) 1000) 2 3) "\t" (rtos (/ (cadr p0) 1000) 2 3 )) i (1+ i))
                                (write-Line st fL)
                                (setq sss (+ sss len)  )))
                (progn
                        (setq pbr (vlax-curve-getpointatdist (car ee) (- see Ls)))
                        (if (> ls 0.0)(progn
                                (vl-cmdf "circle" pbr (/ len 10))
                                (vl-cmdf "text" "j" "m" pbr (/ len 10) 0.0 (rtos i))
                                (setq st (strcat (rtos i) "\t" (rtos (/ (car p0) 1000) 2 3) "\t" (rtos (/ (cadr p0) 1000) 2 3)) i (1+ i))
                                (write-Line st fL)        ))
                        (setq sss (vlax-curve-getdistatpoint (car ee) pbr))
                        (while (< len sss )
                                (setq p0 (vlax-curve-getpointatdist (car ee) (- sss len)))
                                (vl-cmdf "circle" p0 (/ len 10))
                                (setq sss (vlax-curve-getdistatpoint (car ee) p0))
                                (vl-cmdf "text" "j" "m" p0 (/ len 10) 0.0 (rtos i))
                                (setq st (strcat (rtos i) "\t" (rtos (/ (car p0) 1000) 2 3) "\t" (rtos (/ (cadr p0) 1000) 2 3)) i (1+ i))
                                (write-Line st fL)        )        )
        )
        (close fl)(VL-CMDF "CECOLOR" "7")(startapp "notepad" fil)(princ)
)
(princ "\n等分线条命令,me1")(princ)
水平有限,敬请测试
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 7个

财富等级: 恭喜发财

 楼主| 发表于 2019-6-24 14:24:30 | 显示全部楼层
pxr201419 发表于 2019-6-24 00:27
等分功能即可实现,这里给出另类等分方法。
选好保存坐标文件的位置,关闭后可再打开使用。
可设置第1段 ...

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

使用道具 举报

已领礼包: 586个

财富等级: 财运亨通

发表于 2019-6-24 21:16:14 来自手机 | 显示全部楼层
楼主没有明确需要得到什么结果,如果是要坐标文件,应该给出需要的坐标文件的格式;但好像楼主想要给已知多义线增加一些点变成一个新的多义线。不知大家有谁能从楼主的描述中明白楼主的意图
来自: 微社区
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 125个

财富等级: 日进斗金

发表于 2019-6-25 09:04:09 | 显示全部楼层
加密节点有什么意义吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 47个

财富等级: 招财进宝

发表于 2019-11-25 13:15:35 | 显示全部楼层
程序段中的一些功能还是具有参考价值的,赞一个。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-22 03:51 , Processed in 0.467067 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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