明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 6192|回复: 29

[已解答] 直线画矩形

[复制链接]
发表于 2014-11-12 18:58:48 | 显示全部楼层 |阅读模式
本帖最后由 love1030312 于 2014-11-13 08:50 编辑

命令 输入矩形宽度 点1,点2  画出矩形  
命令可以连续使用 ,画出的矩形图层为当前层
跪求大神 ,版主  高手们  帮忙写一个  小弟不甚感激


本帖子中包含更多资源

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

x

点评

输入的两点在矩形的什么位置?  发表于 2014-11-13 07:55
版规第4条  发表于 2014-11-12 19:37
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2019-12-10 08:45:03 | 显示全部楼层
香田里浪人 发表于 2014-11-13 15:11
那很简单,稍微改一下就可以不用每次输入宽度。修改后程序如下
;;两点画矩形
(defun c:fw2()

按直线布置固定的矩形(宽度和长度输入)怎么写?
发表于 2019-12-5 08:43:17 | 显示全部楼层

加载之后提示两点位置错误,按TT没反应
发表于 2020-12-7 14:37:10 | 显示全部楼层

能不能整个三点画L型的。
发表于 2014-11-12 19:18:51 | 显示全部楼层
  1. (defun c:tt(/ pt1 pt2 )
  2.         (while (setq pt1 (getpoint))
  3.           (command "RECTANG" pt1 (setq pt2 (getcorner pt1)))
  4.         )
  5.           (princ)
  6. )

点评

與題意不合  发表于 2014-11-12 22:49
 楼主| 发表于 2014-11-12 22:52:54 | 显示全部楼层
reyun 发表于 2014-11-12 19:18

谢谢朋友的回复   但是不是我想要的
发表于 2014-11-13 00:06:37 | 显示全部楼层
love1030312 发表于 2014-11-12 22:52
谢谢朋友的回复   但是不是我想要的

抱歉,看错了...
 楼主| 发表于 2014-11-13 00:08:28 | 显示全部楼层
reyun 发表于 2014-11-13 00:06
抱歉,看错了...

大哥帮我搞一个 呗
发表于 2014-11-13 06:48:45 | 显示全部楼层
本帖最后由 香田里浪人 于 2014-11-13 07:34 编辑

这么简单的问题应该难不倒楼主。下面程序试一试,看看是不是满足你的要求
;;;两点画矩形
(defun c:fw2()
(setq p1 (getpoint "\n指定左角点:"))
(setq p2 (getpoint "\n指定右角点:"))
(setq w (getreal "\n输入宽度:"))
(setq A (angle p1 p2))
(setq A1 (+ A (/ pi 2)))
(setq p3 (polar p2 A1 w)p4(polar p1 A1 w))
(command "pline" p1 p2 p3 p4 "c" "")
)
发表于 2014-11-13 07:41:01 | 显示全部楼层
楼主这个完全可以自己学着写
 楼主| 发表于 2014-11-13 08:53:07 | 显示全部楼层
香田里浪人 发表于 2014-11-13 06:48
这么简单的问题应该难不倒楼主。下面程序试一试,看看是不是满足你的要求
;;;两点画矩形
(defun c:fw2()
...

谢谢大哥的回复 大概是你这样的  你这个程序比我现在用的还繁琐  哈哈 每次还要输入一次距离
发表于 2014-11-13 10:54:01 | 显示全部楼层
本帖最后由 kwok 于 2014-11-13 10:56 编辑
love1030312 发表于 2014-11-13 08:53
谢谢大哥的回复 大概是你这样的  你这个程序比我现在用的还繁琐  哈哈 每次还要输入一次距离

之前弄过这个
  1. (defun c:tt (/ p1 p2 p3 p4 );;;;;;;;;;;定高定2点画矩形
  2.   (vl-cmdf ".undo" "be")
  3.   (while
  4.     (setq key T)
  5.      (if (null rdh)
  6.        (setq rdh 50)
  7.      )
  8.      (initget "S ")
  9.      (while
  10.        (and key
  11.       (= (setq
  12.      p1 (getpoint (strcat "\n矩形边起点,或,设置(S)<矩形宽度"
  13.               (rtos rdh)
  14.               ">:"
  15.             )
  16.         )
  17.          )
  18.          "S"
  19.       )
  20.        )
  21.   (if p1
  22.     (setq key nil)
  23.   )
  24.   (if (setq s (getdist (strcat "\n设置矩形宽度:<" (rtos rdh) ">")))
  25.     (setq  rdh s
  26.     key T
  27.     )
  28.   )
  29.   (initget "S ")
  30.      )
  31.     (setq p2 (getpoint p1 "矩形边终点:"))

  32.      (setq p3 (polar p2 (+ (angle p1 p2) (* 0.5 pi)) rdh)
  33.      p4 (polar p1 (+ (angle p1 p2) (* 0.5 pi)) rdh)
  34.      )
  35.      (apply 'vl-cmdf (list "_pline" "non" p1 "non" p2 "non" p3 "non" p4 "c"))
  36.      (princ "\n**回车结束**")
  37.   )
  38.   (vl-cmdf ".undo" "e")
  39.   (princ)
  40. )

点评

很给力啊 谢谢 还有记忆功能 好用 真心的 谢谢  发表于 2014-11-14 08:23

评分

参与人数 1明经币 +1 收起 理由
love1030312 + 1 很给力!

查看全部评分

发表于 2014-11-13 15:11:30 | 显示全部楼层
love1030312 发表于 2014-11-13 08:53
谢谢大哥的回复 大概是你这样的  你这个程序比我现在用的还繁琐  哈哈 每次还要输入一次距离

那很简单,稍微改一下就可以不用每次输入宽度。修改后程序如下
;;两点画矩形
(defun c:fw2()
(setq w (getreal "\n输入宽度:"))
(while
(setq p1 (getpoint "\n指定左角点:"))
(setq p2 (getpoint "\n指定右角点:"))
(setq A (angle p1 p2))
(setq A1 (+ A (/ pi 2)))
(setq p3 (polar p2 A1 w)p4(polar p1 A1 w))
(command "pline" p1 p2 p3 p4 "c" "")
))
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 19:36 , Processed in 0.184428 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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