明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: 酷酷提

[提问] 关于画矩形的lsp,求大大优化一下呢

[复制链接]
发表于 2022-4-27 15:13 | 显示全部楼层
现在更新的用法大体是这样的,直接指定长度后,看第二个点在8个象限的哪一部分了,然后判断后画矩形

本帖子中包含更多资源

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

x
回复

使用道具 举报

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

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

点评

已经更新了,又重新组织了一遍代码,到刚才的地方下载另外一个文件试一下吧  发表于 2022-4-27 16:19
回复

使用道具 举报

发表于 2022-4-27 15:26 | 显示全部楼层
你是想把第一个宽度固定为比方18,然后长度每次都输入来确定长度吗,那样就每个第二个点都要输入一次才画了,是这个意思吗
回复

使用道具 举报

发表于 2022-4-27 15:32 | 显示全部楼层
  1. (defun c:tt (); tt(定宽方向矩形)
  2.   (setq ww (Udist 7 "" "距离<输入或鼠标直接量取>" ww nil))
  3.   (while (and (setq p1 (getpoint "\n第1点<退出>: "))
  4.               (setq p2 (getcorner p1 "\n第2点<退出>: "))
  5.          )
  6.     (setq dd (if (> (abs (- (cadr p2) (cadr p1))) (abs (- (car p2) (car p1)))) t nil)
  7.           w1 (if (> (cadr p2) (cadr p1)) ww (- ww))
  8.           w2 (if (> (car p2) (car p1)) ww (- ww))
  9.           p2 (cond (dd (list (+ (car p1) w2) (cadr p2)))
  10.                    ((null dd) (list (car p2) (+ (cadr p1) w1)))
  11.              )
  12.     )
  13.     (command"rectang" "non"p1 "non"p2)
  14.   )
  15.   (princ)
  16. )
回复

使用道具 举报

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

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

使用道具 举报

发表于 2022-4-27 15:39 | 显示全部楼层

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

使用道具 举报

 楼主| 发表于 2022-4-27 15:46 | 显示全部楼层

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

老师这是什么情况呢
回复

使用道具 举报

 楼主| 发表于 2022-4-27 16:36 | 显示全部楼层
本帖最后由 酷酷提 于 2022-4-27 16:39 编辑
xj6019 发表于 2022-4-27 15:26
你是想把第一个宽度固定为比方18,然后长度每次都输入来确定长度吗,那样就每个第二个点都要输入一次才画了 ...

老师,就是现在的逻辑可能有一点问题,就是比如说我们用命令rec画矩形,是先点击第一个点,再输入尺寸,您第二个代码第一步没有问题,但是画第二个矩形的时候,还是要先输入尺寸,再点击确定方向,这个就和正常的操作逻辑顺序发生了一定的变化,操作起来就有一点迷糊,这个可不可以调整一下:画第二个矩形的时候,先点击第一个点,移动了鼠标方向后,再输入长度尺寸。。。麻烦您了
回复

使用道具 举报

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

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

评分

参与人数 1金钱 +40 收起 理由
酷酷提 + 40 辛苦老师了

查看全部评分

回复

使用道具 举报

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

麻烦老师了哈,第三个完全可以用了
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-10 08:00 , Processed in 0.161013 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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