明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 5555|回复: 23

自动绘制保安亭

  [复制链接]
发表于 2011-12-23 21:36:44 | 显示全部楼层 |阅读模式
一直坚持学习,首先感谢gu_xl版主的帮助,谢谢
下面开始讨论怎么绘制保安亭,我不会复杂的代码,只能简单的来实现,下面的图片里面说明
希望有兴趣的高手,给点帮助,



本帖子中包含更多资源

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

x
"觉得好,就打赏"
还没有人打赏,支持一下
 楼主| 发表于 2011-12-23 22:09:38 | 显示全部楼层
我是通过点的方式来实现绘图,很基础的,献丑了
废话不说了,下面是代码
  1. (defun ok_qq()
  2.   (setq unht    (getreal "层高")
  3. sty     (getreal "层数")
  4. elevspc (getreal "间距")
  5. downwin (getreal "窗台高度")
  6. winht   (getreal "窗高")
  7. winjj   (getreal "窗径宽度")
  8. nvht    (getreal "女儿墙高度")
  9. ))

  10. (defun draw_qq()
  11.    (setq p1      (getpoint "\n 取一个点:  "))
  12.    (setq w1 (getdist "\n 墙面的宽度: "))
  13.    (while w1
  14.    (setq x1 (car p1)
  15.          y1 (cadr p1)
  16.          p4 (polar p1 (/ pi 2) unht)
  17.          )
  18.     (setvar "OSMODE" 0)
  19.     (command "-layer" "s" "1" "")
  20.     (command "_.rectang" p1 (strcat "@" (rtos w1 2) "," (rtos (+ (* unht sty) nvht) 2)))
  21.    (repeat (fix sty)
  22.          (command "-layer" "s" "2" "")
  23.      (command "line" p4 (strcat "@" (rtos w1 2) "<" "0" ) "")
  24.         (setq p4 (polar p4 (/ pi 2) unht))
  25. )
  26.     (setvar "OSMODE" oldos)
  27.   ;绘制窗户
  28.    (setq c1 (getdist "\n 窗户的宽度: "))
  29. (while c1
  30.    (setq wp1 (getdist "\n 窗户到左边的距离: "))
  31.    (setq p2 (list (+ x1 wp1) (+ y1 downwin)))
  32.       (setvar "OSMODE" 0)
  33.   (repeat (fix sty)
  34.         (command "-layer" "s" "7" "")
  35.    (command "_.rectang" p2 (strcat "@" (rtos c1 2) "," (rtos winht 2)))
  36.     (setq x2 (car p2)
  37.           y2 (cadr p2)
  38.           x3 (+ x2 winjj)
  39.           y3 (+ y2 winjj)
  40.           nn (- winht (* winjj 2))
  41.           n  (/ (- c1 (* winjj 2)) 2)
  42.           x5 (+ x3 n)
  43.           p3 (list x3 y3)
  44.           p5 (list x5 y3)
  45.           )
  46.       (command "-layer" "s" "6" "")  
  47.    (command "_.rectang" p3 (strcat "@" (rtos (- c1 (* winjj 2)) 2) "," (rtos nn 2)))
  48.    (command "line" p5 (strcat "@" (rtos nn 2) "<" "90" ) "")   
  49.    (setq p2 (polar p2 (/ pi 2) unht))
  50.    (setq p3 (polar p3 (/ pi 2) unht))
  51.    (setq p5 (polar p5 (/ pi 2) unht))            
  52.    )
  53.       (setvar "OSMODE" oldos)
  54.    (setq c1 (getdist "\n 窗户的宽度: "))
  55. )
  56. ;新的墙面起点      
  57.       (setq p1 (list (+ x1 w1 elevspc) y1))         
  58.       (setq w1 (getdist "\n 墙面的宽度: "))
  59.    (Setvar "CMDECHO" 1)
  60.    (princ)))

  61. (defun c:qq()
  62.   (setvar "CMDECHO" 0)
  63.   (Setq oldos (getvar "osmode"))
  64.   (ok_qq)
  65.   (draw_qq)
  66.   (Setvar "osmode" oldos)
  67.   (Setvar "CMDECHO" 1)
  68.   (princ)
  69. )
 楼主| 发表于 2011-12-23 22:11:25 | 显示全部楼层
下面是代码实现的截屏



这个是cad文件

本帖子中包含更多资源

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

x
 楼主| 发表于 2011-12-23 22:12:16 | 显示全部楼层
我弄的很基础,希望高手支招,能够实现我的思路就好了,先谢谢了
发表于 2011-12-24 02:41:02 | 显示全部楼层
保安亭是小区门口的小房子么?
 楼主| 发表于 2011-12-24 09:44:20 | 显示全部楼层
本帖最后由 hhh454 于 2011-12-24 09:46 编辑
cnks 发表于 2011-12-24 02:41
保安亭是小区门口的小房子么?

是的,能否帮忙优化,谢谢我这个全是手动的,应该可以根据多义线交点的关系得出窗户和门的点
发表于 2011-12-24 12:52:38 | 显示全部楼层
赞一个,新手能这样,不错了,我也是新手,学习中。
 楼主| 发表于 2011-12-24 17:08:17 | 显示全部楼层
开心帮忙看看吧!command 建议用 entmake ,这个我不会弄,因为常用的都是command,初学的,帮忙得出那两个交点,谢谢

点评

这里有我例子,以及版主回答的资料 http://bbs.mjtd.com/forum.php  发表于 2011-12-24 17:12
 楼主| 发表于 2011-12-24 20:04:56 | 显示全部楼层
谢谢,kaixin,我去看看
 楼主| 发表于 2011-12-24 20:28:18 | 显示全部楼层
  1. (entmake         '(  (0 . "CIRCLE")        图元形态   

  2.                        (62 . 1)                     颜色

  3.                        (10 4.0 4.0 0.0)             圆心

  4.                        (40 . 1.0)                   半径

  5.                        )

  6.       )
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-12-22 18:18 , Processed in 0.320697 second(s), 35 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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