找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1369|回复: 0

[每日一码] API应用 图块标注

[复制链接]

已领礼包: 593个

财富等级: 财运亨通

发表于 2013-11-14 20:36:45 | 显示全部楼层 |阅读模式

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

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

×
帮一个朋友临时写的
  1. (defun c:tt1 (/ sortent tss bss tl bnl)
  2.   (defun sortent (ss)
  3.     (vl-sort (xdrx_pickset->ents ss)
  4.              '(lambda (e1 e2)
  5.                 (> (cadr (xdrx_getpropertyvalue e1 "Position"))
  6.                    (cadr (xdrx_getpropertyvalue e2 "Position"))
  7.                 )
  8.               )
  9.     )
  10.   )
  11.   (if (and (progn
  12.              (princ "\n选择序号列或名称列....")
  13.              (setq tss (ssget '((0 . "text"))))
  14.            )
  15.            (progn
  16.              (princ "\n选择图例列.....")
  17.              (setq bss (ssget '((0 . "insert"))))
  18.            )
  19.       )
  20.     (progn
  21.       (princ "\n请稍候,正在全图处理......")
  22.       (setq tl        (mapcar
  23.                   '(lambda (x) (xdrx_getpropertyvalue x "Textstring"))
  24.                   (sortent tss)
  25.                 )
  26.             bnl        (mapcar        '(lambda (x)
  27.                            (car (xdrx_getpropertyvalue x "BlockTableRecord"))
  28.                          )
  29.                         (sortent bss)
  30.                 )
  31.       )
  32.       (mapcar '(lambda (x y / ss)
  33.                  (if (setq ss (ssget "x" (list (cons 2 x))))
  34.                    (mapcar '(lambda (a)
  35.                               (xdrx_xdata_set a "XDLHBZ" y)
  36.                             )
  37.                            (xdrx_pickset->ents ss)
  38.                    )
  39.                  )
  40.                )
  41.               bnl
  42.               tl
  43.       )
  44.       (princ "\nAll is Ok, 可以执行标注命令了!")
  45.     )
  46.   )
  47.   (princ)
  48. )
  49. (defun c:tt (/ e bn ss el pts p p1 zh str l pl txt tp an p2)
  50.   (while
  51.     (and (setq e (car (xdrx_entsel
  52.                         "\n点选特征块: "
  53.                         '((0 . "INSERT") (-3 ("XDLHBZ")))
  54.                       )
  55.                  )
  56.          )
  57.          (setq bn (xdrx_getentdxf 2))
  58.          (setq ss (ssget (list (cons 2 bn))))
  59.     )
  60.      (setq
  61.        pts (mapcar '(lambda (x) (xdrx_getpropertyvalue x "Position"))
  62.                    (xdrx_pickset->ents ss)
  63.            )
  64.        pts (vl-sort pts
  65.                     '(lambda (p1 p2)
  66.                        (if (= (car p1) (car p2))
  67.                          (< (cadr p1) (cadr p2))
  68.                          (< (car p1) (car p2))
  69.                        )
  70.                      )
  71.            )
  72.        p   (car pts)
  73.        zh  (getvar "textsize")
  74.        str (strcat (car (xdrx_xdata_get e "XDLHBZ"))
  75.                    "("
  76.                    (rtos (sslength ss) 2 0)
  77.                    "株)"
  78.            )
  79.        l   (XD::String:ActualWidth str "" zh 0.8)
  80.      )
  81.      (setq pl (apply 'xdrx_polyline_make pts))
  82.      (if (and (setq p1 (getpoint p "\n标注点: "))
  83.               (progn
  84.                 (xdrx_grdraw -2 1 p p1)
  85.                 t
  86.               )
  87.               (setq p2 (getpoint p1 "\n方向: "))
  88.          )
  89.        (progn
  90.          (setq an (angle p1 p2))
  91.          (if (or (<= an (/ pi 2))
  92.                  (>= an (* 1.5 pi))
  93.              )
  94.            (setq an 0.
  95.                  tp (mapcar '+ p1 '(500. 500. 0))
  96.            )
  97.            (setq an pi
  98.                  tp (mapcar '+ p1 '(-500. 500. 0.))
  99.            )
  100.          )
  101.          (xdrx_polyline_setpointat pl 0 (polar p1 an (+ l 2000.)))
  102.          (xdrx_polyline_addvertexat pl 1 p1)
  103.          (xdrx_polyline_addvertexat pl 2 p)
  104.          (setq txt (xdrx_text_make
  105.                      tp
  106.                      str
  107.                      zh
  108.                      0.
  109.                    )
  110.          )
  111.          (if (= an pi)
  112.            (xdrx_text_sethozmode txt 2)
  113.          )
  114.          (xdrx_group_make "*" pl txt)
  115.        )
  116.      )
  117.   )
  118.   (princ)
  119. )

lhbz.gif


论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-22 01:49 , Processed in 0.180231 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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