直线画矩形
本帖最后由 love1030312 于 2014-11-13 08:50 编辑命令 输入矩形宽度 点1,点2画出矩形
命令可以连续使用 ,画出的矩形图层为当前层
跪求大神 ,版主高手们帮忙写一个小弟不甚感激
香田里浪人 发表于 2014-11-13 15:11
那很简单,稍微改一下就可以不用每次输入宽度。修改后程序如下
;;两点画矩形
(defun c:fw2()
按直线布置固定的矩形(宽度和长度输入)怎么写? kwok 发表于 2014-11-13 10:54
之前弄过这个
加载之后提示两点位置错误,按TT没反应 kwok 发表于 2014-11-13 10:54
之前弄过这个
能不能整个三点画L型的。 (defun c:tt(/ pt1 pt2 )
(while (setq pt1 (getpoint))
(command "RECTANG" pt1 (setq pt2 (getcorner pt1)))
)
(princ)
) reyun 发表于 2014-11-12 19:18 static/image/common/back.gif
谢谢朋友的回复 但是不是我想要的 love1030312 发表于 2014-11-12 22:52 static/image/common/back.gif
谢谢朋友的回复 但是不是我想要的
抱歉,看错了... reyun 发表于 2014-11-13 00:06 static/image/common/back.gif
抱歉,看错了...
大哥帮我搞一个 呗 本帖最后由 香田里浪人 于 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 06:48 static/image/common/back.gif
这么简单的问题应该难不倒楼主。下面程序试一试,看看是不是满足你的要求
;;;两点画矩形
(defun c:fw2()
...
谢谢大哥的回复 大概是你这样的你这个程序比我现在用的还繁琐哈哈 每次还要输入一次距离 本帖最后由 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)
) 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" "")
))