明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1942|回复: 2

[讨论] entmake标注关联-直线起点关联

[复制链接]
发表于 2015-8-26 23:42 | 显示全部楼层 |阅读模式
标注关联有的时候比较方便,最近研究了下,精力有限,基本了解了标注关联原理。
先创建词典DICTIONARY对象,再创建关联非实体对象DIMASSOC,
再修改DICTIONARY的组码360,更新标注DIMENSION对象的关联反应器组码,更新直线对象的关联反应器组码。
理论上其他应该类似。
以下是直线标注关联测试代码。
  1. (defun c:tt(/ dic_list dim1 dim_assoc dim_dic dim_list l1 l1_list l2 l2_list p1 p2 p3 p4 pt pt1 pt2)
  2.   (setq p1(getpoint "\n第1点:")
  3.   p2(getpoint p1 "\n第2点:")
  4.   p3(getpoint  "\n第3点:")
  5.   p4(getpoint p3 "\n第4点:")
  6.   )
  7.   (setq pt1 p1
  8.   pt2 p3
  9.   pt(polar pt2(+ (angle pt1 pt2) (* pi 1.5)) 1 )
  10.   )
  11.   (setq l1(entmakex(list '(0 . "line")(cons 10 p1)(cons 11 p2))))
  12.   (setq l2(entmakex(list '(0 . "line")(cons 10 p3)(cons 11 p4))))
  13.   (setq dim1(entmakex (list '(0 . "DIMENSION")
  14.           '(100 . "AcDbEntity")
  15.           '(100 . "AcDbDimension")
  16.           (cons 10 pt)
  17.           '(70 . 32)
  18.           '(1 . "")
  19.           '(100 . "AcDbAlignedDimension")
  20.           (cons 13 pt1)
  21.           (cons 14 pt2)
  22.           '(50 . 1.5708)
  23.           '(100 . "AcDbRotatedDimension")
  24.           )
  25.           )
  26.   )
  27.   (setq dim_dic(entmakex (list '(0 . "DICTIONARY")
  28.              '(100 . "AcDbDictionary")
  29.              '(280 . 1)
  30.              '(281 . 1)
  31.        )
  32.          ))
  33.   (setq dim_assoc(entmakex (list  '(0 . "DIMASSOC")
  34.           '(102 . "{ACAD_REACTORS")
  35.           (cons 330 dim_dic)
  36.           '(102 . "}")
  37.           (cons 330 dim_dic)
  38.           '(100 . "AcDbDimAssoc")
  39.           (cons 330 dim1)
  40.           '(90 . 3) '(70 . 0) '(71 . 0)
  41.           '(1 . "AcDbOsnapPointRef")
  42.           '(72 . 13)
  43.           (cons 331 l1)
  44.           '(73 . 2) '(91 . 0) '(40 . 0.0) '(10 0.0 0.0 2.0e+050) '(75 . 0)
  45.           '(1 . "AcDbOsnapPointRef")
  46.           '(72 . 13)
  47.           (cons 331 l2)
  48.           '(73 . 2) '(91 . 0)
  49.           '(40 . 0.0)
  50.           '(10 0.0 0.0 2.0e+050)
  51.           '(75 . 0))
  52.          )
  53.   )
  54.   (setq dic_list(entget dim_dic)
  55.   dic_list(append dic_list (list '(3 . "ACAD_DIMASSOC")
  56.                (cons 360 dim_assoc))))
  57.   (entmod dic_list)         
  58.   (setq dim_list(entget dim1)
  59.   dim_list(append (list(car dim_list)(cadr dim_list)(cadddr dim_list))
  60.            (list '(102 . "{ACAD_XDICTIONARY")
  61.            (cons 360 dim_dic)
  62.            '(102 . "}")
  63.            '(102 . "{ACAD_REACTORS")
  64.            (cons 330 dim_assoc)
  65.            '(102 . "}")
  66.            (caddr dim_list)
  67.            )      
  68.        (cddddr dim_list)
  69.       )
  70.   )
  71.   (entmod dim_list)
  72.   (setq l1_list(entget l1)
  73.   l1_list(append (list(car l1_list)(cadr l1_list)(cadddr l1_list))
  74.            (list '(102 . "{ACAD_REACTORS")
  75.            (cons 330 dim_assoc)
  76.            '(102 . "}")
  77.            (caddr l1_list)
  78.            )
  79.            (cddddr l1_list)
  80.            )
  81.   )
  82.   (setq l2_list(entget l2)
  83.   l2_list(append (list(car l2_list)(cadr l2_list)(cadddr l2_list))
  84.            (list '(102 . "{ACAD_REACTORS")
  85.            (cons 330 dim_assoc)
  86.            '(102 . "}")
  87.            (caddr l2_list)
  88.            )
  89.            (cddddr l2_list)
  90.            )
  91.   )
  92.   (entmod l1_list)
  93.   (entmod l2_list)   
  94.   (princ)
  95. )

评分

参与人数 5明经币 +5 收起 理由
spp_wall + 1 赞一个!
434939575 + 1 大力支持!
伪书虫86 + 1 向大师致敬
lucas_3333 + 1 很给力!
自贡黄明儒 + 1 很给力!

查看全部评分

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2015-8-27 08:07 | 显示全部楼层
E大, 这么晚还是操劳, 辛苦了
发表于 2018-9-7 11:24 | 显示全部楼层
E大你好,你这个好像有问题,画了好几段,只标注关联了一段
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-11 10:22 , Processed in 0.142611 second(s), 33 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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