xj6019 发表于 2022-4-27 15:13:07

现在更新的用法大体是这样的,直接指定长度后,看第二个点在8个象限的哪一部分了,然后判断后画矩形

酷酷提 发表于 2022-4-27 15:14:49

xj6019 发表于 2022-4-27 15:08
试试这样的,彻底改了一下,输入的时候要保证长度大于宽度,然后画的时候会根据鼠标点的第二点的位置画矩 ...

厉害了,老师,还有就是可以点击第一个点后,第二个点可以直接输入数字来确定第二个点的长度吗?比如我想固定一个18,点击第一个点后,我想高或者宽500或者1000,我直接输入数字 就变成了想要的数字,而不是一直是最开始设定的宽和高

xj6019 发表于 2022-4-27 15:26:28

你是想把第一个宽度固定为比方18,然后长度每次都输入来确定长度吗,那样就每个第二个点都要输入一次才画了,是这个意思吗

xyp1964 发表于 2022-4-27 15:32:36

(defun c:tt (); tt(定宽方向矩形)
(setq ww (Udist 7 "" "距离<输入或鼠标直接量取>" ww nil))
(while (and (setq p1 (getpoint "\n第1点<退出>: "))
              (setq p2 (getcorner p1 "\n第2点<退出>: "))
       )
    (setq dd (if (> (abs (- (cadr p2) (cadr p1))) (abs (- (car p2) (car p1)))) t nil)
          w1 (if (> (cadr p2) (cadr p1)) ww (- ww))
          w2 (if (> (car p2) (car p1)) ww (- ww))
          p2 (cond (dd (list (+ (car p1) w2) (cadr p2)))
                   ((null dd) (list (car p2) (+ (cadr p1) w1)))
             )
    )
    (command"rectang" "non"p1 "non"p2)
)
(princ)
)

酷酷提 发表于 2022-4-27 15:38:00

xj6019 发表于 2022-4-27 15:26
你是想把第一个宽度固定为比方18,然后长度每次都输入来确定长度吗,那样就每个第二个点都要输入一次才画了 ...

嗯嗯老师,就是这个意思的

xj6019 发表于 2022-4-27 15:39:10

xyp1964 发表于 2022-4-27 15:32


还是院长厉害,院长的代码好简洁呀,佩服厉害了

酷酷提 发表于 2022-4-27 15:46:43

xyp1964 发表于 2022-4-27 15:32


命令: tt
; 错误: no function definition: UDIST

老师这是什么情况呢

酷酷提 发表于 2022-4-27 16:36:44

本帖最后由 酷酷提 于 2022-4-27 16:39 编辑

xj6019 发表于 2022-4-27 15:26
你是想把第一个宽度固定为比方18,然后长度每次都输入来确定长度吗,那样就每个第二个点都要输入一次才画了 ...
老师,就是现在的逻辑可能有一点问题,就是比如说我们用命令rec画矩形,是先点击第一个点,再输入尺寸,您第二个代码第一步没有问题,但是画第二个矩形的时候,还是要先输入尺寸,再点击确定方向,这个就和正常的操作逻辑顺序发生了一定的变化,操作起来就有一点迷糊,这个可不可以调整一下:画第二个矩形的时候,先点击第一个点,移动了鼠标方向后,再输入长度尺寸。。。麻烦您了

xj6019 发表于 2022-4-27 17:05:39

酷酷提 发表于 2022-4-27 16:36
老师,就是现在的逻辑可能有一点问题,就是比如说我们用命令rec画矩形,是先点击第一个点,再输入尺寸, ...

哥们,又更新了,去老地方下载,改成先指定第二个点,再输入长度后画矩形了,脑袋快成浆糊了,差不多咱就不折腾了吧

酷酷提 发表于 2022-4-27 17:14:23

xj6019 发表于 2022-4-27 17:05
哥们,又更新了,去老地方下载,改成先指定第二个点,再输入长度后画矩形了,脑袋快成浆糊了,差不多咱就 ...

麻烦老师了哈,第三个完全可以用了
页: 1 [2] 3 4
查看完整版本: 关于画矩形的lsp,求大大优化一下呢