love1030312 发表于 2014-11-12 18:58:48

直线画矩形

本帖最后由 love1030312 于 2014-11-13 08:50 编辑

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


184235521 发表于 2019-12-10 08:45:03

香田里浪人 发表于 2014-11-13 15:11
那很简单,稍微改一下就可以不用每次输入宽度。修改后程序如下
;;两点画矩形
(defun c:fw2()


按直线布置固定的矩形(宽度和长度输入)怎么写?

296715530 发表于 2019-12-5 08:43:17

kwok 发表于 2014-11-13 10:54
之前弄过这个

加载之后提示两点位置错误,按TT没反应

184235521 发表于 2020-12-7 14:37:10

kwok 发表于 2014-11-13 10:54
之前弄过这个

能不能整个三点画L型的。

reyun 发表于 2014-11-12 19:18:51

(defun c:tt(/ pt1 pt2 )
        (while (setq pt1 (getpoint))
          (command "RECTANG" pt1 (setq pt2 (getcorner pt1)))
        )
        (princ)
)

love1030312 发表于 2014-11-12 22:52:54

reyun 发表于 2014-11-12 19:18 static/image/common/back.gif


谢谢朋友的回复   但是不是我想要的

reyun 发表于 2014-11-13 00:06:37

love1030312 发表于 2014-11-12 22:52 static/image/common/back.gif
谢谢朋友的回复   但是不是我想要的

抱歉,看错了...

love1030312 发表于 2014-11-13 00:08:28

reyun 发表于 2014-11-13 00:06 static/image/common/back.gif
抱歉,看错了...

大哥帮我搞一个 呗

香田里浪人 发表于 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" "")
)

1993063 发表于 2014-11-13 07:41:01

楼主这个完全可以自己学着写

love1030312 发表于 2014-11-13 08:53:07

香田里浪人 发表于 2014-11-13 06:48 static/image/common/back.gif
这么简单的问题应该难不倒楼主。下面程序试一试,看看是不是满足你的要求
;;;两点画矩形
(defun c:fw2()
...

谢谢大哥的回复 大概是你这样的你这个程序比我现在用的还繁琐哈哈 每次还要输入一次距离

kwok 发表于 2014-11-13 10:54:01

本帖最后由 kwok 于 2014-11-13 10:56 编辑

love1030312 发表于 2014-11-13 08:53 static/image/common/back.gif
谢谢大哥的回复 大概是你这样的你这个程序比我现在用的还繁琐哈哈 每次还要输入一次距离
之前弄过这个(defun c:tt (/ p1 p2 p3 p4 );;;;;;;;;;;定高定2点画矩形
(vl-cmdf ".undo" "be")
(while
    (setq key T)
   (if (null rdh)
       (setq rdh 50)
   )
   (initget "S ")
   (while
       (and key
      (= (setq
   p1 (getpoint (strcat "\n矩形边起点,或,设置(S)<矩形宽度"
            (rtos rdh)
            ">:"
            )
      )
         )
         "S"
      )
       )
(if p1
    (setq key nil)
)
(if (setq s (getdist (strcat "\n设置矩形宽度:<" (rtos rdh) ">")))
    (setqrdh s
    key T
    )
)
(initget "S ")
   )
    (setq p2 (getpoint p1 "矩形边终点:"))

   (setq p3 (polar p2 (+ (angle p1 p2) (* 0.5 pi)) rdh)
   p4 (polar p1 (+ (angle p1 p2) (* 0.5 pi)) rdh)
   )
   (apply 'vl-cmdf (list "_pline" "non" p1 "non" p2 "non" p3 "non" p4 "c"))
   (princ "\n**回车结束**")
)
(vl-cmdf ".undo" "e")
(princ)
)

香田里浪人 发表于 2014-11-13 15:11:30

love1030312 发表于 2014-11-13 08:53 static/image/common/back.gif
谢谢大哥的回复 大概是你这样的你这个程序比我现在用的还繁琐哈哈 每次还要输入一次距离

那很简单,稍微改一下就可以不用每次输入宽度。修改后程序如下
;;两点画矩形
(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" "")
))
页: [1] 2 3
查看完整版本: 直线画矩形