明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3019|回复: 13

自动化窗线,怎么框选矩形可以自动加上窗线

  [复制链接]
发表于 2013-2-4 20:21:21 | 显示全部楼层 |阅读模式
在xiabin68的帮助下,弄了可以自动化画矩形,但窗线怎么可以也自动化,框选矩形自动加上窗线!!
如下图,


本帖子中包含更多资源

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

x
发表于 2013-2-7 20:30:14 | 显示全部楼层
论坛有个画立面窗的有源码,我一直在用,感觉不错
回复 支持 1 反对 0

使用道具 举报

发表于 2020-9-12 11:45:47 | 显示全部楼层
顶起来,,这个功能还是蛮好的,希望能够得到解决
发表于 2013-2-4 21:20:31 | 显示全部楼层
这复制一下不就行了吗???
发表于 2013-2-4 23:55:54 来自手机 | 显示全部楼层
上图可以直接加在代码里
 楼主| 发表于 2013-2-5 02:29:49 | 显示全部楼层
xiabin68 发表于 2013-2-4 23:55
上图可以直接加在代码里

这图吗?

本帖子中包含更多资源

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

x
发表于 2013-2-5 10:15:11 来自手机 | 显示全部楼层
ww5w 发表于 2013-2-5 02:29
这图吗?

把你的代码帖出来,直接在你的里面改一下就行了,
 楼主| 发表于 2013-2-5 13:52:12 | 显示全部楼层
本帖最后由 ww5w 于 2013-2-5 14:16 编辑
xiabin68 发表于 2013-2-5 10:15
把你的代码帖出来,直接在你的里面改一下就行了,

代码在下面,只是加了一些阵列,跟你写的差不多,麻烦你看看能否加上框内线,谢谢!

  1. ;取lwpoline线变宽的地方,并在上生成方框
  2. ;    xiabin68  
  3. ;    QQ:19539078
  4. ; 以下程序没有加入任何子函数希望对初学有帮助
  5. ;转载请说明出处与作者信息
  6. (defun c:hk ()
  7. (setvar "cmdecho" 0)
  8. (setq os (getvar "osmode"))
  9.   (setq ent (car (entsel"\n请选择多段线:")))
  10.   (setq vlent (vlax-ename->vla-object ent))
  11. (setq entLEN (vlax-curve-getDistAtParam ent (vlax-curve-getEndParam ent)))
  12.   (setq zb (getpoint "请选择展开起点:"))
  13.   (setvar "osmode" 0)
  14. (setq zb1 (list (+ 3 (car zb))(+ 1000 (cadr zb))));;;;;;;;;;;;设3偏右离起点距离;1000设距高
  15. (setq zb3 (list (+ 3 (car zb))(cadr zb)))
  16. (setq zb2 (list (+ entLEN (car zb1))(+ 1000 (cadr zb))))
  17. (command "_pline" zb1 zb2 "")
  18. (setq cenLine (entlast))
  19. (command ".chprop" cenLine "" "p" "layer" "--008" "");;;;;设线归层
  20. (command "_array" cenLine ""  "r" 5 "1" 1000 );;;;;;;;;;;;;;;;;;;;;设5阵列数量;1000设距高
  21. (command "_.rectang" zb3 (strcat "@" (rtos entLEN 2) "," (rtos 5000 2)));;;;;;;;;;;;;总高度
  22. (command ".chprop" (entlast) "" "p" "layer" "--006" "")
  23.   (setq lst (entget ent))
  24.   (setq dd (length lst))
  25.   (setq zblst '())
  26.   (setq i 0)
  27.    (while (/= (car (nth i lst)) 10)
  28.      (setq i (1+ i))
  29.      )
  30. (setq zblst (append zblst (list (cons 10 zb3)) (list (nth (+ 1 i) lst)) (list (nth (+ 2 i) lst))))
  31.   (while (= 10 (car (nth i lst)))
  32.   (setq x1 (cdr (nth i lst)))
  33.         (if (= (car (nth (+ i 4) lst)) 10)
  34.       (setq x2 (cdr (nth (+ i 4) lst)))
  35.       (setq x2 nil)
  36.     )
  37.    
  38.     (if (and x1 x2)
  39.       (progn
  40.   (setq dist (- (vlax-curve-getDistAtPoint vlent x2) (vlax-curve-getDistAtPoint vlent x1)))
  41.   (setq x3 (polar zb (angtof "0") dist))
  42.   (setq zblst (append zblst (list (cons 10 x3)) (list (nth (+ 5 i) lst)) (list (nth (+ 6 i) lst))))
  43.   (setq  zb x3)
  44.   (setq i (+ i 4))
  45.   )
  46.     (setq i 2)
  47.       )
  48.     )
  49.   (setq zblst (append (list (assoc 0 lst) '(100 . "AcDbEntity") '(100 . "AcDbPolyline") (assoc 90 lst)) zblst))
  50.    (entmakex zblst)
  51.   (setq aa (entlast))
  52. (command ".chprop" aa "" "p" "layer" "--000" "")
  53.   (setq lstt (entget aa))
  54.   (setq n 0)
  55.   (repeat (length lstt)
  56.     (setq nn (car (nth n lstt)))
  57.     (if (= nn 10)
  58.       (progn
  59.   (setq xy (cdr (nth n lstt)))
  60.   (setq high (cdr (nth (1+ n) lstt)))
  61.   (if (and xy (> high 0))
  62.     (progn
  63.       (setq xx (cdr (nth (+ n 4) lstt)))
  64.       (setq xy1 (polar  xy (angtof "90") 200));;;;;;;;;;;;;设框离线高度
  65.       (setq xy2 (polar xx (angtof "90") 500));;;;;;;;;;;;;;;;设框高度
  66.       ;(setq textxy (polar xy1 (angle xy1 xy2) (/ (distance xy1 xy2) 3)));算出文字的坐标
  67.       (setq lr (rtos (distance xy xx) 2 2))
  68.       (command "rectang" xy1 xy2)
  69.       (setq Nrec (entlast))
  70.       (command ".chprop" Nrec "" "p" "layer" "--004" "")
  71. (command "_array" Nrec ""  "r" 5 "1" 1000 );;;;;;;;;;;;;;;;;;;;;;;;设5阵列数量和1000距离
  72.      ;(entmakex (list '(0 . "TEXT")  ;用文字写出长度
  73.           ; (cons 1 lr)
  74.            ;(cons 10 textxy)
  75.          ; (CONS 40 1.5)
  76.       ;)
  77.    ; )
  78.   )
  79.       )
  80.   )
  81.       )
  82.     (setq n (1+ n))
  83.     )
  84. (setvar "cmdecho" 1)
  85. (setvar "osmode" os)
  86. (princ)
  87.   )

 楼主| 发表于 2013-2-5 13:58:25 | 显示全部楼层
怎么贴出的码变得这么乱?改了也不行.

点评

换成IE浏览器试试  发表于 2013-2-5 14:02
 楼主| 发表于 2013-2-5 14:17:17 | 显示全部楼层
原来真是浏览器的事,换ie可以正常显示了.
发表于 2013-2-7 23:32:11 | 显示全部楼层
立面展开:

本帖子中包含更多资源

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

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

本版积分规则

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

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

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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