找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 11380|回复: 44

[求助]:CAD中如何实现任意三点画矩形?

[复制链接]
发表于 2007-7-16 19:48:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
在南方CASS中有三点画房屋的功能,本人想要正是通过任意三点出一个矩形房屋来,而不是先画好矩形后再旋转到合适的地方。可能需要编程实现,不知道有没有高手对此感兴趣或有现成的程序更好?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2007-7-17 16:32:57 | 显示全部楼层
三点不能确定一个矩形啊?难道我学的几何有误?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-7-17 19:55:52 | 显示全部楼层
一定条件下的三点可以固定一个矩形的,想像一下就知道了,要不南方CASS的开发人员都是白痴?或者这么想:已知一个矩形的三个点,把它画出来。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-7-18 09:45:47 | 显示全部楼层
三个点可以确定3个矩形,肯定还要附加条件吧?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-7-18 11:30:39 | 显示全部楼层
不只吧,没有其他限定条件还是很多的。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-7-18 23:06:13 | 显示全部楼层
如果没有附加条件,则有无数个矩形
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-7-19 08:00:24 | 显示全部楼层
各位,其实我的问题很简单:就是比如我扫描了一张底图,上面有许多矩形的房屋,但是都是歪斜的。现在我要把它清绘一下,那么画那么矩形的房屋我得先画个差不多大的矩形再旋转到合适的地方,既麻烦又不太准。但是假如有像南方CASS那样的“三点画房屋”的功能,不就可以在那些矩形房屋中的三个角每个角点一下,就可以自动封闭成一个规则的矩形吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-7-19 10:03:18 | 显示全部楼层
原来是三个角点啊,我说呢
可能需要自己做个小程序了,计算另一角点的坐标就好了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-7-19 10:22:20 | 显示全部楼层
3个角点就是基本上限定了,这个需要额外的编程。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-7-19 13:28:07 | 显示全部楼层
肯定是需要额外的编程,不知道可有高手们感兴趣?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2007-7-19 15:21:19 | 显示全部楼层
两点画房的东西,我以前写过一个。现在手边没有了。
哪位将画房子的命令名告诉我,我再写一个?
下面这是两点画矩形。

  1. ;;;功  能:
  2. ;;;命令名:TT
  3. ;;;
  4. ;;;日  期:zml84 于 2007-06-29
  5. (defun c:tt()
  6.     (if (setq pt1 (getpoint "\n第一点:"))
  7.         (if(setq pt2  (getcorner pt1 " >>> 第二点:"))
  8.                  (command "_.pline" "non" pt1 ".x" pt1 pt2 "non" pt2   "c")
  9.            )
  10.         )
  11.     (princ)
  12.     );_ 结束defun
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-7-19 19:35:45 | 显示全部楼层
经试验,楼上的的代码只能画出三角形,而且是一边正交的直角三角形。能否再完善?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2007-7-20 09:24:25 | 显示全部楼层

  1. ;;;功  能:三点绘制四边形
  2. ;;;命令名:TT
  3. ;;;日  期:zml84 于 2007-07-20
  4. (defun C:TT (/ PT1 PT2 PT3 PT4 D ANG)
  5.     (if        (and (setq PT1 (getpoint "\n第一点:"))
  6.              (setq PT2 (getpoint PT1 " >> 第二点:"))
  7.              (setq PT3 (getpoint PT2 " >>> 第三点:"))
  8.         )
  9.         (progn
  10.             (setq D   (distance PT2 PT1)
  11.                   ANG (angle PT2 PT1)
  12.                   PT4 (polar PT3 ANG D)
  13.             )
  14.             (command "_.pline" "non" PT1 "non" PT2 "non" PT3 "non" PT4
  15.                      "c")
  16.         )
  17.     )
  18.     (princ)
  19. ) ;_ 结束defun

本楼代码着色显示见:http://www.acad.net.cn/viewthread.php?tid=244&extra=page%3D1
如有更多需求,请提出。我们共同解决。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2007-7-20 09:38:57 | 显示全部楼层

  1. ;;;功  能:三点绘制四边形
  2. ;;;命令名:TT
  3. ;;;日  期:zml84 于 2007-07-20
  4. (defun C:TT (/ PT1 PT2 PT3 PT4 D ANG)
  5.     (if        (and (setq PT1 (getpoint "\n第一点:"))
  6.              (setq PT2 (getpoint PT1 " >> 第二点:"))
  7.              (setq PT3 (getpoint PT2 " >>> 第三点:"))
  8.         )
  9.         (progn
  10.             (setq D   (distance PT2 PT1)
  11.                   ANG (angle PT2 PT1)
  12.                   PT4 (polar PT3 ANG D)
  13.             )
  14.             (command "_.pline" "non" PT1 "non" PT2 "non" PT3 "non" PT4
  15.                      "c")
  16.         )
  17.     )
  18.     (princ)
  19. ) ;_ 结束defun

本楼代码着色显示见:http://www.acad.net.cn/viewthread.php?tid=244&extra=page%3D1
如有更多需求,请提出。我们共同解决。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-7-20 13:40:27 | 显示全部楼层
楼主要的是矩形,你给的是平行四边形
也就是说,你的程序要求用户输入点的时候必须完全正确,

作为程序,不该有如此要求,
比如,第一个点作为矩形的角点必须正确,那第二个点实际只要反映矩形的斜度,反正有第三个来决定矩形的大小呢,
反过来,第二个决定底边的长度的话,那第三个点也许只是另一边上的任意点(只要保证第三个点到pt1-pt2底边的距离正确)

2点画水平矩形,3点画斜矩形,为何多一个点,无非就是多一个顷斜的条件嘛,而倾斜的条件不应该太苛刻。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-15 13:32 , Processed in 0.434831 second(s), 59 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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