999999 发表于 2020-8-10 12:39:18

(求助)关于选边平行于X轴的实现

请问各位大神有没有选边平行于X轴的代码(可以实现用点选的方式多个选择,并且结束后捕捉点还是回到命令启动前,,,之所以想要点选的方式是,我感觉框选的方式应该行不通,识别不了以哪条边为基础平行)

在此谢谢各位大神了,,本人太过愚钝,,对代码这些,,理解欠缺,,所以麻烦一下论坛的大佬了

ZZXXQQ 发表于 2020-8-10 12:39:19

;选边平行X轴 ZZXXQQ 2020-8-12
(defun c:tt ()
(while (setq s1 (entsel "\n选择一条边: "))
(setq en (car s1) pt (cadr s1))
(setq ang (angle pt (setq pt1 (osnap pt "nea"))))
(if (> ang pi) (setq ang (- ang pi)))
(setq roang (rtos (- 90 (/ (* ang 180) pi)) 2 3))
(command "_.ROTATE" en "" pt1 roang)
)
(princ)
)


fl202 发表于 2020-8-10 15:04:55

选边平行于X轴 ? 就是把三角形旋转呗?你的三角形是块还是3条直线?

根据哪个点旋转呢?一条边有2个端点,还有一个中点。

编这个程序不难。

love1030312 发表于 2020-8-10 15:24:07

本帖最后由 love1030312 于 2020-8-10 15:25 编辑

fl202 发表于 2020-8-10 15:04
选边平行于X轴 ? 就是把三角形旋转呗?你的三角形是块还是3条直线?

根据哪个点旋转呢?一条边有2个端 ...
看他的描述就能看出来 是想直接求代码的不可能会自己动手;P;P而且思路有问题;实用性非常差

999999 发表于 2020-8-10 15:48:32

love1030312 发表于 2020-8-10 15:24
看他的描述就能看出来 是想直接求代码的不可能会自己动手而且思路有问题;实用性非常差

唉,,大神这话说的我要是知道自己打代码的话,,我就自给自足了,,只是说大概的想法,,,一个个自己旋转感觉有灵魂,没效率    哈哈,,所以求助各跑好汉

999999 发表于 2020-8-10 15:53:31

fl202 发表于 2020-8-10 15:04
选边平行于X轴 ? 就是把三角形旋转呗?你的三角形是块还是3条直线?

根据哪个点旋转呢?一条边有2个端 ...

大神,这个是多段线组成的三角形,不是块,三角形是闭合的,图形不一定是三角形,有可能之后有是矩形,不规则的图形,但不是块,意思就是(输入命令——选择图形边(代码识别该边的两端)——连接部份的
整体平行与X轴——结束)

999999 发表于 2020-8-10 15:54:42

love1030312 发表于 2020-8-10 15:24
看他的描述就能看出来 是想直接求代码的不可能会自己动手而且思路有问题;实用性非常差

我就是不懂代码的思路是怎么样的,所以大致表达一下我认为的想法

生活丨好无奈 发表于 2020-8-11 02:31:28

一个点没法确定旋转方向,点取边上的两个点控制旋转方向
(defun c:tt(/ pt1 pt2)
    (and (ssget)
         (setq pt1 (getpoint "\n基点: "))
         (setq pt2 (getpoint pt1 "\n点取角度,此角度将改为0度: "))
         (command "rotate" "p" "" "non" pt1 "r" "non" pt1 "non" pt2 "0")
    )
    (princ)
)

999999 发表于 2020-8-12 00:42:21

生活丨好无奈 发表于 2020-8-11 02:31
一个点没法确定旋转方向,点取边上的两个点控制旋转方向

谢谢大神的帮助,请问有没有可能实现选择边,让该边平行X轴呢

999999 发表于 2020-8-12 10:01:41

ZZXXQQ 发表于 2020-8-10 12:39


谢谢大神,,这个试了一下,确实实现在我的想法,谢谢   太优秀了
页: [1] 2 3
查看完整版本: (求助)关于选边平行于X轴的实现