一个很简单的操作,但小弟不会写,求助各位高手!!
这个应该很简单的函数式就可以实现吧,但小弟没学过不懂搞,想请高手帮帮忙:画一条直线,然后得出以此直线为长的定比例的矩形,比如说画3m的直线,最后得出一个3mx1m的矩形,有没有大侠给点提示或者类似的函数,谢了。 你好这个能否引伸下,宽度在图中用鼠标量取,然后画长度方向,生成矩形 内定 3.0改以 GetDist 取值即可 应是可行,但示例不足,难成代码 本帖最后由 革天明 于 2012-4-28 13:16 编辑
看看这段代码够不够你使用,比例为3:1,想改的话修改下面红色的部分。
(defun c:31 ()
(setq p1 (getpoint "\n请输入第一点:")
p2 (getpoint p1 "\n请输入第二点:")
os_mode (getvar "osmode")
ang (angle p1 p2)
p3 (polar p2 (+ ang (* 0.5 pi)) (/ (distance p1 p2) 3.0))
p4 (polar p1 (+ ang (* 0.5 pi)) (/ (distance p1 p2) 3.0))
)
(setvar "osmode" 0)
(command "_line" p1 p2 p3 p4 "c")
(setvar "osmode" os_mode)
)
革天明 发表于 2012-4-28 13:14 static/image/common/back.gif
看看这段代码够不够你使用,比例为3:1,想改的话修改下面红色的部分。
(defun c:31 ()
(setq p ...
谢谢你,已经满足我使用了,非常感谢
另可以实现最后的矩形是一条线的吗?如果很麻烦就算了,呵呵···· 哦 ,我自己看了下,是不是 把 (command "_line" p1 p2 p3 p4 "c") 里面的line命令改成Pline就行了呢··· 根据 革天明 大哥的思路,直接把最后的一步改成画矩形也行,关键是思路对头,当初想就是画根线然后偏移啊或者复制啊,还是大侠厉害啊,问题解决了,再次感谢,谢谢······
(defun c:33 ()
(setq p1 (getpoint "\n请输入第一点:")
p2 (getpoint p1 "\n请输入第二点:")
os_mode (getvar "osmode")
ang (angle p1 p2)
p3 (polar p2 (+ ang (* 0.5 pi)) (/ (distance p1 p2) 3.0))
p4 (polar p1 (+ ang (* 0.5 pi)) (/ (distance p1 p2) 3.0))
)
(setvar "osmode" 0)
(command "_RECTANGLE" p1 p3)
(setvar "osmode" os_mode)
) 试试非水平线时若何? Andyhon 发表于 2012-4-28 14:10 static/image/common/back.gif
试试非水平线时若何?
哦,非水平的时候直接画矩形就不行了··· start4444 发表于 2012-4-28 14:21 static/image/common/back.gif
哦,非水平的时候直接画矩形就不行了···
方法1:旋转
方法2:(command "_line" p1 p2 p3 p4 "c") 再使用PEDIT生成多段线 革天明 发表于 2012-4-28 14:27 static/image/common/back.gif
方法1:旋转
方法2:(command "_line" p1 p2 p3 p4 "c") 再使用PEDIT生成多段线
嗯,用你的代码把最后画直线命令改为多段线命令就完美解决了,非水平也行。
页:
[1]
2