明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1585|回复: 8

结构图与建筑图中实体数据传递

[复制链接]
发表于 2005-4-30 10:47:00 | 显示全部楼层 |阅读模式
本人工作中需处理大量的墙体高度问题!!!!!!!!!!!!!!!!!!!


结构图中的梁高 已用不同的颜色的实体加以区分,怎样将这种区分传递给在各自梁下的建筑图中的墙体


发表于 2005-4-30 10:57:00 | 显示全部楼层
有一个不管专业的提问...谁知道什么是梁,什么又是墙体?又怎么传递?
 楼主| 发表于 2005-4-30 11:12:00 | 显示全部楼层
对不起了,举个通俗的例子,"梁"图层中的多条不同颜色的多义线,在"墙"图层中相应的位置有方向相同,但长短不完全一致的线,如何将大量的多义线的颜色分别传给相应位置的墙层中的线,


我还是不知说明白了没有
发表于 2005-4-30 11:16:00 | 显示全部楼层
给个图吧,要传颜色很简单,就是要确定谁传给谁不知道麻不麻烦
 楼主| 发表于 2005-4-30 11:19:00 | 显示全部楼层
马上来
 楼主| 发表于 2005-4-30 11:31:00 | 显示全部楼层
先谢了

本帖子中包含更多资源

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

x
 楼主| 发表于 2005-4-30 11:45:00 | 显示全部楼层
我见过一个思路大概是这样的


选中梁图层中的线


处理墙线时进一步用ssget窗口选中范围内墙图层中的实体


传递


释放墙线


处理下一个实体
发表于 2005-4-30 13:32:00 | 显示全部楼层
就你这个图,下面的程序能解决,但不知道你真正的图中是否有别的情况,主要是 1.梁为lwpolyline,而且只有两个顶点,没有圆弧2.墙为LINE,
  1. (defun Check(ents1 ents2 / ptc pt1 pt2)
  2.    (setq ptc (mapcar '(lambda(e1 e2) (/ (+ e1 e2) 2.0)) (cdr (assoc 10 ents2)) (cdr (assoc 11 ents2))))
  3.    (setq pt1 (cdr (assoc 10 ents1)))
  4.    (setq pt2 (cdr (assoc 10 (cdr (member (assoc 10 ents1) ents1)))))
  5.    (if (equal (angle pt1 ptc) (angle ptc pt2) 0.000001)
  6.        t
  7.        nil
  8.    )
  9. )
  10. (defun c:test( / ss1 ss2 ents1 ents2 ent2 i j)
  11.    (setq ss1 (ssget "x" '((0 . "LWPOLYLINE") (8 . "梁"))))
  12.    (setq ss2 (ssget "x" '((0 . "LINE") (8 . "墙"))))
  13.    (if (and ss1 ss2)
  14.        (progn
  15.            (setq i 0)
  16.            (repeat (sslength ss1)
  17.   (setq ents1 (entget (ssname ss1 i)))
  18.   (setq j 0)
  19.   (while (< j (sslength ss2))
  20.      (setq ent2 (ssname ss2 j))
  21.      (setq ents2 (entget ent2))
  22.      (if (check ents1 ents2)
  23.          (progn
  24.              (if (assoc 62 ents1) (setq color (cdr (assoc 62 ents1))) (setq color 256))
  25.              (if (assoc 62 ents2)
  26.     (setq ents2 (subst (cons 62 color) (assoc 62 ents2) ents2))
  27.     (setq ents2 (append ents2 (list (cons 62 color))))
  28.              )
  29.              (entmod ents2)
  30.              (ssdel ent2 ss2)
  31.          );progn
  32.          (setq j (1+ j))
  33.      );if
  34.   );while
  35.   (setq i (1+ i))
  36.            );repeat
  37.        );progn
  38.    );if
  39.    (princ)
  40. )
     
 楼主| 发表于 2005-4-30 14:23:00 | 显示全部楼层
我只能说:这世界太棒了,明经太棒了


再次谢了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-9-29 08:21 , Processed in 0.182895 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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