明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 5640|回复: 17

物件属性动态显示

    [复制链接]
发表于 2011-1-11 15:09:21 | 显示全部楼层 |阅读模式
购买主题 已有 30 人购买  本主题需向作者支付 1 个明经币 才能浏览
"觉得好,就打赏"
还没有人打赏,支持一下
 楼主| 发表于 2011-1-11 15:12:04 | 显示全部楼层
本帖最后由 redcat 于 2011-1-11 15:12 编辑

后续代码跟上-2:
  1.   ;.................................................................................;
  2. (defun _Stringify (data / typ)
  3.   (setq data (cond
  4.         ((eq :vlax-true data) "Yes")
  5.         ((eq :vlax-false data) "No")
  6.         (data)
  7.       ) ;_ 结束cond
  8.   ) ;_ 结束setq
  9.   (cond ((eq 'STR (setq typ (type data)))
  10.   data
  11. )
  12. ((eq 'INT typ)
  13.   (itoa data)
  14. )
  15. ((eq 'REAL typ)
  16.   (rtos data)
  17. )
  18. ((vl-princ-to-string data))
  19.   ) ;_ 结束cond
  20. ) ;_ 结束defun
  21. ;.................................................................................;
  22. (defun _Display (Cir Tx ss mode / cObj cSs iObj aStr iLst tStr cnt tStr)
  23.   (setq cObj (vlax-ename->vla-object Cir)
  24. aStr ""
  25.   ) ;_ 结束setq
  26.   (cond ((or (not ss) (= (sslength ss) 0)))
  27. ((setq iObj (vl-some
  28.         (function
  29.    (lambda (obj)
  30.      (if (vlax-invoke obj 'IntersectWith cObj acExtendNone)
  31.        obj
  32.      ) ;_ 结束if
  33.    ) ;_ 结束lambda
  34.         ) ;_ 结束function
  35.         (ss->lst ss)
  36.       ) ;_ 结束vl-some
  37.   ) ;_ 结束setq
  38.   (setq iLst (entget (vlax-vla-object->ename iObj)))
  39.   (vla-put-Color cObj acRed)
  40.   (cond ((zerop mode)
  41.   (cond
  42.     ((eq "INSERT" (dxf 0 iLst))
  43.      (if (setq cSs (ssget "_X" (list (cons 0 "INSERT") (cons 2 (_GetName iObj)))))
  44.        (setq cnt (itoa (sslength cSs)))
  45.      ) ;_ 结束if
  46.      (if (= 1 (dxf 66 iLst))
  47.        (progn
  48.          (setq aStr "\nATTRIBUTES: \n{\\fArial|b0|i0|c0|p34;")
  49.          (foreach x (vlax-invoke iObj 'GetAttributes)
  50.     (setq aStr (strcat aStr (vla-get-TagString x) ":  " (vla-get-TextString x) "\n"))
  51.          ) ;_ 结束foreach
  52.          (setq aStr (strcat aStr "}"))
  53.        ) ;_ 结束progn
  54.      ) ;_ 结束if
  55.      (setq tStr (strcat "{\\C4;"
  56.           (dxf 0 iLst)
  57.           "}"
  58.           "\nNAME:  "
  59.           (_GetName iObj)
  60.           (if cnt
  61.      (strcat "\nINSTANCES:  " cnt)
  62.      ""
  63.           ) ;_ 结束if
  64.           "\nLAYER:  "
  65.           (dxf 8 iLst)
  66.           "\nCOLOR:  "
  67.           (_GetColour iLst)
  68.           "\nLINETYPE:  "
  69.           (vlax-get-property iObj 'Linetype)
  70.           "\nLINEWEIGHT:  "
  71.           (_GetLW iLst)
  72.           "\nROTATION:  "
  73.           (angtos (dxf 50 iLst))
  74.           "\nSCALE:  "
  75.           (_GetScale iLst)
  76.           "\nDYNAMIC: "
  77.           (_Stringify (vlax-get-property iObj 'isDynamicBlock))
  78.           "\nXREF:  "
  79.           (_Stringify (vlax-get-property (vla-item (vla-get-Blocks doc) (_GetName iObj)) 'ISXREF))
  80.           aStr
  81.          ) ;_ 结束strcat
  82.      ) ;_ 结束setq
  83.     )
  84.     (t
  85.      (setq tStr (strcat "{\\C4;" (dxf 0 iLst) "}"))
  86.      (foreach prop '(LAYER  COLOR        LINETYPE      LINEWEIGHT    ALIGNMENT  ARCLENGTH     AREA      ATTACHMENTPOINT   CENTER        CIRCUMFERENCE
  87.        CLOSED  CUSTOMSCALE   DEGREE      DIAMETER    DISPLAYLOCKED ELEVATION     HEIGHT      LENGTH    MEASUREMENT  OBLIQUEANGLE  RADIUS
  88.        ROTATION  SCALEFACTOR   STYLENAME     TEXTOVERRIDE  TEXTSTRING  TOTALANGLE    WIDTH
  89.       )
  90.        (setq tStr (strcat tStr
  91.      (if (and (vlax-property-available-p iObj prop) (not (eq "" (vlax-get iObj prop)))) ;_ 结束and
  92.        (strcat "\n"
  93.         (strcase (vl-princ-to-string prop))
  94.         ":  "
  95.         (cond
  96.           ((eq prop 'COLOR)
  97.            (_GetColour iLst)
  98.           )
  99.           ((vl-position prop '(DISPLAYLOCKED CLOSED))
  100.            (_Stringify (vlax-get-property iObj prop))
  101.           )
  102.           ((eq prop 'ALIGNMENT)
  103.            (cdr (assoc (vlax-get-property iObj prop) Alignment))
  104.           )
  105.           ((eq prop 'ATTACHMENTPOINT)
  106.            (cdr (assoc (vlax-get-property iObj prop) Attachment))
  107.           )
  108.           ((or
  109.              (and
  110.         (eq 'MEASUREMENT prop)
  111.         (vl-position (vla-get-ObjectName iObj) '("AcDb2LineAngularDimension" "AcDb3PointAngularDimension"))
  112.              ) ;_ 结束and
  113.              (and
  114.         (eq 'TOTALANGLE prop)
  115.         (eq "AcDbArc" (vla-get-ObjectName iObj))
  116.              ) ;_ 结束and
  117.              (eq 'ROTATION prop)
  118.            ) ;_ 结束or
  119.            (angtos (vlax-get iObj prop))
  120.           )
  121.           (
  122.            (eq prop 'LINEWEIGHT)
  123.            (_GetLW iLst)
  124.           )
  125.           (
  126.            (_Stringify (vlax-get iObj prop))
  127.           )
  128.         ) ;_ 结束cond
  129.        ) ;_ 结束strcat
  130.        ""
  131.      ) ;_ 结束if
  132.     ) ;_ 结束strcat
  133.        ) ;_ 结束setq
  134.      ) ;_ 结束foreach
  135.     )
  136.   ) ;_ 结束cond
  137.   (_Update
  138.     (_PutDxf
  139.       (_PutDxf (entget tx) 62 251)
  140.       1
  141.       (_Text tStr)
  142.     ) ;_ 结束_PutDxf
  143.   ) ;_ 结束_Update
  144.   t
  145.         )
  146.   ) ;_ 结束cond
  147. )
  148. (t)
  149.   ) ;_ 结束cond
  150.   iObj
  151. ) ;_ 结束defun

评分

参与人数 1明经币 +1 收起 理由
品茗新秀 + 1 很给力!

查看全部评分

 楼主| 发表于 2011-1-11 15:14:06 | 显示全部楼层
本帖最后由 redcat 于 2011-1-11 17:11 编辑

后续代码跟上-3(结束):


  1. ;.................................................................................;

  2. (defun dxf (code lst) (cdr (assoc code lst)))

  3. ;.................................................................................;

  4. (defun PurgeLayer (layer)
  5.   (if
  6.     (not
  7.       (vl-catch-all-error-p
  8.   (setq layer
  9.          (vl-catch-all-apply
  10.      'vla-item
  11.      (list
  12.        (vla-get-layers
  13.          (vla-get-ActiveDocument (vlax-get-acad-object))
  14.        ) ;_ 结束vla-get-layers
  15.        layer
  16.      ) ;_ 结束list
  17.          ) ;_ 结束vl-catch-all-apply
  18.   ) ;_ 结束setq
  19.       ) ;_ 结束vl-catch-all-error-p
  20.     ) ;_ 结束not
  21.      (vl-catch-all-apply 'vla-delete (list layer))
  22.   ) ;_ 结束if
  23. ) ;_ 结束defun

  24. ;.................................................................................;
  25. (defun RedrawSS  (ss mode)
  26.   ((lambda (i)
  27.      (while (setq e (ssname ss (setq i (1+ i))))
  28.        (redraw e mode)
  29.      ) ;_ 结束while
  30.    ) ;_ 结束lambda
  31.     -1
  32.   )
  33. ) ;_ 结束defun

  34. ;;-------------------------------------------------------------------------------;;
  35. ;;                           --=={  Main Function  }==--                         ;;
  36. ;;-------------------------------------------------------------------------------;;

  37. (setq cEnt  (entmakex
  38.         (list
  39.     (cons 0 "CIRCLE")
  40.     (cons 8 "LMAC_DINFO")
  41.     (cons 10 (getvar 'VIEWCTR))
  42.     (cons 40 (setq rad (/ (getvar 'VIEWSIZE) (float DInfo:cRad))))
  43.     (cons 62 3)
  44.         ) ;_ 结束list
  45.       ) ;_ 结束entmakex
  46.       cELst (entget cEnt)
  47. ) ;_ 结束setq

  48. (setq tEnt  (entmakex
  49.         (list (cons 0 "MTEXT")
  50.         (cons 100 "AcDbEntity")
  51.         (cons 100 "AcDbMText")
  52.         (cons 8 "LMAC_DINFO")
  53.         (cons 1 (_Text (nth DInfo:Mode ModeLst)))
  54.         (cons 10 (getvar 'VIEWCTR))
  55.         (cons 40 (/ (getvar 'VIEWSIZE) 60.0))
  56.         (cons 50 0.0)
  57.         (cons 62 71)
  58.         (cons 71 1)
  59.         (cons 90 3)
  60.         (cons 63 256)
  61.         (cons 45 1.2)
  62.         ) ;_ 结束list
  63.       ) ;_ 结束entmakex
  64.       tElst (entget tEnt)
  65.       -pi/4 (/ pi -4.)
  66.       pi/4  (/ pi 4.)
  67.       5pi/4 (/ (* 5 pi) 4.)
  68. ) ;_ 结束setq

  69. (setq msgLst
  70.        '("\n[TAB Mode] [+/- Cursor Size] Move Cursor Over Objects to Retrieve Information..."
  71.    "\n[TAB Mode] [+/- Cursor Size] Click Object to Isolate Layer, Shift+Click to Turn on All Layers..."
  72.   )
  73. ) ;_ 结束setq

  74. (princ (setq msg (nth DInfo:Mode msgLst)))

  75. (while
  76.   (progn (setq gr   (grread 't 15 1)
  77.          code (car gr)
  78.          data (cadr gr)
  79.          vs   (getvar 'VIEWSIZE)
  80.    ) ;_ 结束setq

  81.    (cond ((and (= 5 code) (listp data))
  82.     (setq r (sqrt (* 2. rad rad)))
  83.     (setq cEnt (_Update (setq cELst (_PutDxf (_PutDxf cELst 10 data) 40 (setq rad (/ vs (float DInfo:cRad))))) ;_ 结束setq
  84.          ) ;_ 结束_Update
  85.     ) ;_ 结束setq

  86.     (setq tEnt (_Update
  87.            (setq tELst (_PutDxf (_PutDxf tELst 10 (polar (polar data -pi/4 rad) 0 (/ vs 90.0))) 40 (/ vs 60.0))) ;_ 结束setq
  88.          ) ;_ 结束_Update
  89.     ) ;_ 结束setq

  90.     (if (setq ss (ssget "_C" (polar data pi/4 r) (polar data 5pi/4 r)))
  91.       (progn (ssdel cEnt ss)
  92.        (ssdel tEnt ss)
  93.        (setq Inter (_Display cEnt tEnt ss DInfo:Mode))
  94.       ) ;_ 结束progn
  95.     ) ;_ 结束if
  96.     t
  97.          )
  98.          ((= 2 code)
  99.     (cond
  100.       ((vl-position data '(43 61))
  101.        (if (> DInfo:cRad 1.0)
  102.          (setq cEnt  (_Update (setq cELst (_PutDxf cELst 40 (setq rad (/ vs (float (setq DInfo:cRad (1- DInfo:cRad)))))))
  103.         ) ;_ 结束_Update
  104.          ) ;_ 结束setq

  105.          (princ (strcat "\n** Maximum Cursor Size Reached **" msg))
  106.        ) ;_ 结束if
  107.       )
  108.       (
  109.        (= 45 data)
  110.        (setq cEnt
  111.         (_Update (setq cELst (_PutDxf cELst 40 (setq rad (/ vs (float (setq DInfo:cRad (1+ DInfo:cRad)))))))
  112.         ) ;_ 结束_Update
  113.        ) ;_ 结束setq
  114.       )
  115.       (
  116.        (= 9 data)
  117.        (setq DInfo:Mode (rem (1+ DInfo:Mode) 2))

  118.        (setq tEnt (_Update (setq tELst (_PutDxf tELst 1 (_Text (nth DInfo:Mode ModeLst)))))) ;_ 结束setq

  119.        (princ (setq msg (nth DInfo:Mode msgLst)))
  120.       )
  121.       ((vl-position data '(13 32))
  122.        nil
  123.       )
  124.       (t)
  125.     ) ;_ 结束cond
  126.          )
  127.          ((and (= 3 code) (listp data) (= 1 DInfo:Mode))
  128.     (if (and Express (acet-sys-shift-down))
  129.       (mapcar
  130.         (function
  131.           (lambda (x) (vla-put-layeron x :vlax-true))
  132.         ) ;_ 结束function
  133.         on
  134.       ) ;_ 结束mapcar

  135.       (if (and Inter (not (eq "LMAC_DINFO" (vla-get-layer Inter))))
  136.         (mapcar
  137.           (function
  138.       (lambda  (x)
  139.         (if (not (eq (strcase (vla-get-layer Inter)) (strcase (vla-get-name x))))
  140.           (vla-put-layeron x :vlax-false)
  141.         ) ;_ 结束if
  142.       ) ;_ 结束lambda
  143.           ) ;_ 结束function
  144.           layers
  145.         ) ;_ 结束mapcar
  146.       ) ;_ 结束if
  147.     ) ;_ 结束if
  148.     t
  149.          )
  150.    ) ;_ 结束cond
  151.   ) ;_ 结束progn
  152. ) ;_ 结束while
  153. (mapcar 'entdel (list tEnt cEnt))
  154. (PurgeLayer "LMAC_DINFO")
  155. (princ)
  156. ) ;_ 结束defun

评分

参与人数 1明经币 +1 收起 理由
品茗新秀 + 1

查看全部评分

 楼主| 发表于 2011-1-11 15:17:08 | 显示全部楼层
本帖最后由 redcat 于 2011-1-11 15:52 编辑

个人申明:以上代码属于转载,如需改进,请注明出处

本帖子中包含更多资源

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

x
发表于 2011-1-11 17:37:15 | 显示全部楼层
图片看不见,好歹先看看效果再收币!
 楼主| 发表于 2011-1-12 09:20:31 | 显示全部楼层
本帖最后由 redcat 于 2011-1-12 10:32 编辑

回复 xyz2009xyz 的帖子

演示在4楼怎么说没图片呢???

本帖子中包含更多资源

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

x
发表于 2011-1-12 10:07:29 | 显示全部楼层
回复 redcat 的帖子

好像是不付币就看不见图片!
发表于 2011-1-13 22:32:29 | 显示全部楼层
属实需要,程序不错
发表于 2011-1-14 13:19:53 | 显示全部楼层
动态信息查询源程序(1)

  1. ;;;动态信息
  2. ;;;Copyrignt chengqiang Lin 2009 for mengyang(作者:林承强)
  3. (defun c:vh ()
  4. (setq AcadObject   (vlax-get-acad-object)

  5. AcadDocument (vla-get-ActiveDocument Acadobject)

  6. mSpace      (vla-get-ModelSpace Acaddocument)

  7. )
  8. (defun DEL_DD ()
  9.     (if (/= SOLD_list nil)
  10.       (progn
  11. (if (/= ENT_SELP nil)
  12.    (entupd ENT_SELP_1)
  13.    (princ)
  14. )
  15. (entdel SOLD_list)
  16. (entdel SOLD_list_t1)
  17. (entdel SOLD_list_t2)
  18. (entdel SOLD_list_t3)
  19. (entdel SOLD_list_t4)
  20. (entdel SOLD_list_t5)
  21. (setq SOLD_list nil)
  22.       )
  23.       (princ)
  24.     )
  25. )
  26. (setq *error* VHerror)
  27. (princ "\n-->移动鼠标到任意对象可查询信息,按右键退出:")
  28. (setq tt nil)
  29. (while (= tt nil)
  30.     (setq VIEW (getvar "viewsize"))
  31.     (setq ENT_PT1 (grread t 1))
  32.     (DEL_DD)
  33.     (if (or (= (car ENT_PT1) 5) (= (car ENT_PT1) 12))
  34.       (progn
  35. (setq ENT_PT2 (car (cdr ENT_PT1)))
  36. (setq ENT_SELP (ssget ENT_PT2))
  37. (if (/= ENT_SELP nil)
  38.    (progn
  39.      (setq ENT_SELP_1 (ssname ENT_SELP 0))
  40.      (setq pt1 ENT_PT2)
  41.      (redraw (ssname ENT_SELP 0) 3)
  42.      (setq ENT_S (entget (ssname ENT_SELP 0)))
  43.      (setq entovlx (vlax-ename->vla-object (ssname ENT_SELP 0)))
  44.      (setq ENT_MS (cdr (assoc 0 ENT_S)))
  45.      (cond ((= ENT_MS "LINE")
  46.      (setq t1 "【直线】")
  47.      (setq t2 (strcat "长度:"
  48.         (rtos (vla-get-Length entovlx)
  49.         )
  50.        )
  51.      )
  52.      (setq t3
  53.      (strcat "角度:"
  54.       (rtos (/ (* (angle (cdr (assoc 10 ENT_S))
  55.            (cdr (assoc 11 ENT_S))
  56.            )
  57.            180
  58.         )
  59.         pi
  60.       )
  61.       )
  62.      )
  63.      )
  64.      (setq t4
  65.      (strcat
  66.        "起点:"
  67.        (strcat (rtos (car (cdr (assoc 10 ENT_S))) 2 2)
  68.         ","
  69.         (rtos (cadr (cdr (assoc 10 ENT_S))) 2 2)
  70.         ","
  71.         (rtos (caddr (cdr (assoc 10 ENT_S))) 2 2)
  72.        )
  73.      )
  74.      )
  75.      (setq t5
  76.      (strcat
  77.        "终点:"
  78.        (strcat (rtos (car (cdr (assoc 11 ENT_S))) 2 2)
  79.         ","
  80.         (rtos (cadr (cdr (assoc 11 ENT_S))) 2 2)
  81.         ","
  82.         (rtos (caddr (cdr (assoc 11 ENT_S))) 2 2)
  83.        )
  84.      )
  85.      )
  86.     )
  87.     ((= ENT_MS "INSERT")
  88.      (setq t1 "【图块】")
  89.      (setq t2 (strcat "块名:" (cdr (assoc 2 ENT_S))))
  90.      (setq
  91.        t3 (strcat "角度:" (angtos (cdr (assoc 50 ENT_S))))
  92.      )
  93.      (setq t4 (strcat "图层:" (cdr (assoc 8 ENT_S))))
  94.      (setq t5
  95.      (strcat
  96.        "基点:"
  97.        (strcat (rtos (car (cdr (assoc 10 ENT_S))) 2 2)
  98.         ","
  99.         (rtos (cadr (cdr (assoc 10 ENT_S))) 2 2)
  100.         ","
  101.         (rtos (caddr (cdr (assoc 10 ENT_S))) 2 2)
  102.        )
  103.      )
  104.      )
  105.     )
  106.     ((= ENT_MS "TEXT")
  107.      (setq t1 "【文字】")
  108.      (setq t2 (strcat "内容:" (cdr (assoc 1 ENT_S))))
  109.      (setq t3 (strcat "文字样式:" (cdr (assoc 7 ENT_S))))
  110.      (setq t4 (strcat "文字高度:" (rtos (cdr (assoc 40 ENT_S)))))
  111.      (setq t5
  112.      (strcat
  113.        "基点:"
  114.        (strcat (rtos (car (cdr (assoc 10 ENT_S))) 2 2)
  115.         ","
  116.         (rtos (cadr (cdr (assoc 10 ENT_S))) 2 2)
  117.         ","
  118.         (rtos (caddr (cdr (assoc 10 ENT_S))) 2 2)
  119.        )
  120.      )
  121.      )
  122.     )
  123.     ((= ENT_MS "DIMENSION")
  124.      (setq t1 "【标注尺寸】")
  125.      (setq t2 (strcat "内容:" (cdr (assoc 1 ENT_S))))
  126.      (setq t3 (strcat "标注样式:" (cdr (assoc 3 ENT_S))))
  127.      (setq t4 (strcat "图层:" (cdr (assoc 8 ENT_S))))
  128.      (setq t5
  129.      (strcat
  130.        "基点:"
  131.        (strcat (rtos (car (cdr (assoc 10 ENT_S))) 2 2)
  132.         ","
  133.         (rtos (cadr (cdr (assoc 10 ENT_S))) 2 2)
  134.         ","
  135.         (rtos (caddr (cdr (assoc 10 ENT_S))) 2 2)
  136.        )
  137.      )
  138.      )
  139.     )
  140.     ((= ENT_MS "MTEXT")
  141.      (setq t1 "【多行文字】")
  142.      (setq t2 (strcat "图层:" (cdr (assoc 8 ENT_S))))
  143.      (setq t3 (strcat "文字样式:" (cdr (assoc 7 ENT_S))))
  144.      (setq t4 (strcat "文字高度:" (rtos (cdr (assoc 40 ENT_S)))))
  145.      (setq t5
  146.      (strcat
  147.        "基点:"
  148.        (strcat (rtos (car (cdr (assoc 10 ENT_S))) 2 2)
  149.         ","
  150.         (rtos (cadr (cdr (assoc 10 ENT_S))) 2 2)
  151.         ","
  152.         (rtos (caddr (cdr (assoc 10 ENT_S))) 2 2)
  153.        )
  154.      )
  155.      )
  156.     )
  157.     ((= ENT_MS "HATCH")
  158.      (setq t1 "【边界填充】")
  159.      (setq t2 (strcat "图层:" (cdr (assoc 8 ENT_S))))
  160.      (setq t3 (strcat "填充样式:" (cdr (assoc 2 ENT_S))))
  161.      (setq t4 (strcat "填充比例:" (rtos (cdr (assoc 41 ENT_S)))))
  162.      (setq t5
  163.      (strcat
  164.        "基点:"
  165.        (strcat (rtos (car (cdr (assoc 10 ENT_S))) 2 2)
  166.         ","
  167.         (rtos (cadr (cdr (assoc 10 ENT_S))) 2 2)
  168.         ","
  169.         (rtos (caddr (cdr (assoc 10 ENT_S))) 2 2)
  170.        )
  171.      )
  172.      )
  173.     )
  174.     ((= ENT_MS "LWPOLYLINE")
  175.      (setq t1 "【多段线】")
  176.      (setq t2 (strcat "图层:" (cdr (assoc 8 ENT_S))))
  177.      (setq t3 (strcat "长度:"
  178.         (rtos (vla-get-Length entovlx)
  179.         )
  180.        )
  181.      )
  182.      (setq t4 (strcat "面积:" (rtos (vla-get-Area entovlx))))
  183.      (setq t5
  184.      (strcat
  185.        "起点:"
  186.        (strcat (rtos (car (cdr (assoc 10 ENT_S))) 2 2)
  187.         ","
  188.         (rtos (cadr (cdr (assoc 10 ENT_S))) 2 2)
  189.         ","
  190.         (rtos 0)
  191.        )
  192.      )
  193.      )
  194.     )
  195.     ((= ENT_MS "CIRCLE")
  196.      (setq t1 "【圆】")
  197.      (setq t2 (strcat "图层:" (cdr (assoc 8 ENT_S))))
  198.      (setq t3 (strcat "直径:" "%%C"(rtos (* (cdr (assoc 40 ENT_S)) 2 ))))
  199.      (setq t4 (strcat "面积:" (rtos (vla-get-Area entovlx))))
  200.      (setq t5
  201.      (strcat
  202.        "圆心:"
  203.        (strcat (rtos (car (cdr (assoc 10 ENT_S))) 2 2)
  204.         ","
  205.         (rtos (cadr (cdr (assoc 10 ENT_S))) 2 2)
  206.         ","
  207.         (rtos 0)
  208.        )
  209.      )
  210.      )
  211.     )
  212.     ((= ENT_MS "ARC")
  213.      (setq t1 "【圆弧】")
  214.      (setq t2 (strcat "图层:" (cdr (assoc 8 ENT_S))))
  215.      (setq t3 (strcat "半径:" "R"(rtos(cdr (assoc 40 ENT_S)))))
  216.      (setq t4 (strcat "长度:" (rtos (vla-get-ArcLength entovlx))))
  217.      (setq t5
  218.      (strcat
  219.        "圆心:"
  220.        (strcat (rtos (car (cdr (assoc 10 ENT_S))) 2 2)
  221.         ","
  222.         (rtos (cadr (cdr (assoc 10 ENT_S))) 2 2)
  223.         ","
  224.         (rtos 0)
  225.        )
  226.      )
  227.      )
  228.     )
  229.     ((= ENT_MS "ELLIPSE")
  230.      (setq t1 "【椭圆】")
  231.      (setq t2 (strcat "图层:" (cdr (assoc 8 ENT_S))))
  232.      (setq t3 (strcat "半径比例:" (rtos (vla-get-RadiusRatio entovlx))))
  233.      (setq t4 (strcat "面积:" (rtos (vlax-curve-getArea entovlx))))
  234.      (setq t5
  235.      (strcat
  236.        "中心点:"
  237.        (strcat (rtos (car (cdr (assoc 10 ENT_S))) 2 2)
  238.         ","
  239.         (rtos (cadr (cdr (assoc 10 ENT_S))) 2 2)
  240.         ","
  241.         (rtos 0)
  242.        )
  243.      )
  244.      )
  245.     )
  246.     ((= ENT_MS "TOLERANCE")
  247.      (setq t1 "【公差】")
  248.      (setq t2 (strcat "图层:" (cdr (assoc 8 ENT_S))))
  249.      (setq t3 (strcat "标注样式:" (cdr (assoc 3 ENT_S))))
  250.      (setq t4 (strcat "空间:" "模型空间"))
  251.      (setq t5
  252.      (strcat
  253.        "基点:"
  254.        (strcat (rtos (car (cdr (assoc 10 ENT_S))) 2 2)
  255.         ","
  256.         (rtos (cadr (cdr (assoc 10 ENT_S))) 2 2)
  257.         ","
  258.         (rtos 0)
  259.        )
  260.      )
  261.      )
  262.     )
  263.     ((= ENT_MS "LEADER")
  264.      (setq t1 "【箭头】")
  265.      (setq t2 (strcat "图层:" (cdr (assoc 8 ENT_S))))
  266.      (setq t3 (strcat "标注样式:" (cdr (assoc 3 ENT_S))))
  267.      (setq t4 (strcat "颜色:" (rtos (vla-get-DimensionLineColor entovlx))))
  268.      (setq t5
  269.      (strcat
  270.        "基点:"
  271.        (strcat (rtos (car (cdr (assoc 10 ENT_S))) 2 2)
  272.         ","
  273.         (rtos (cadr (cdr (assoc 10 ENT_S))) 2 2)
  274.         ","
  275.         (rtos 0)
  276.        )
  277.      )
  278.      )
  279.     )
  280.     ((= ENT_MS "SPLINE")
  281.      (setq t1 "【样条曲线】")
  282.      (setq t2 (strcat "图层:" (cdr (assoc 8 ENT_S))))
  283.      (setq t3 (strcat "长度:" (rtos (vla-get-ArcLength entovlx))))
  284.      (setq t4 (strcat "长度:"
  285.         (rtos (vlax-curve-getEndParam entovlx)
  286.         )
  287.        )
  288.      )
  289.      (setq t5 (strcat "空间:" (cdr (assoc 410 ENT_S))))
  290.     )
  291.   
发表于 2011-1-14 13:21:47 | 显示全部楼层
上接动态信息查询源程序(1)

  1. ;;;动态信息
  2. ;;;Copyrignt chengqiang Lin 2009 for mengyang(作者:林承强)
  3.   ((= ENT_MS "POLYLINE")
  4.      (setq t1 "【三维样条曲线】")
  5.      (setq t2 (strcat "图层:" (cdr (assoc 8 ENT_S))))
  6.      (setq t3 (strcat "长度:" (rtos (vlax-curve-getEndParam entovlx))))
  7.      (setq t4 (strcat "面积:" (rtos (vlax-curve-getArea entovlx))))
  8.      (setq t5 (strcat "空间:" (cdr (assoc 410 ENT_S))))
  9.     )
  10.      )
  11.      (setq TTS (max (strlen t1) (strlen t2) (strlen t3) (strlen t4) (strlen t5)))
  12.      (setq pt2 (polar pt1 (angtof "0") (/ (* VIEW TTS )60)))
  13.      (setq pt3 (polar pt2 (angtof "270") (/ VIEW 6)))
  14.      (setq pt4 (polar pt3 (angtof "180") (/ (* VIEW TTS )60)))
  15.      (setq tx0 (polar pt1 (angtof "0") (/ (/ VIEW 6) 6)))
  16.      (setq tx1 (polar tx0 (angtof "270") (/ (/ VIEW 6) 6)))
  17.      (setq tx2 (polar pt1 (angtof "270") (/ (/ VIEW 6) 2.5)))
  18.      (setq tx3 (polar tx2 (angtof "270") (/ (/ VIEW 6) 6)))
  19.      (setq tx4 (polar tx3 (angtof "270") (/ (/ VIEW 6) 6)))
  20.      (setq tx5 (polar tx4 (angtof "270") (/ (/ VIEW 6) 6)))
  21.      (setq txscale (/ VIEW 65))
  22.      (setq
  23.        SOLD_list
  24.         (entmakex
  25.    (list (cons 0 "SOLID")
  26.          (cons 100 "AcDbEntity")
  27.          (cons 62 1)
  28.          (cons 100 "AcDbTrace")
  29.          (cons 10 pt1)
  30.          (cons 11 pt2)
  31.          (cons 12 pt4)
  32.          (cons 13 pt3)
  33.          (cons 210 (trans (getvar "viewdir") 1 0))
  34.    )
  35.         )
  36.      )
  37.      (setq
  38.        SOLD_list_t1
  39.         (entmakex
  40.    (list (cons 0 "TEXT")
  41.          (cons 100 "AcDbEntity")
  42.          (cons 8 "MAIN")
  43.          (cons 100 "AcDbText")
  44.          (cons 10 tx1)
  45.          (cons 40 txscale)
  46.          (cons 1 t1)
  47.          (cons 41 0.8)
  48.          (cons 7 "Standard")
  49.          (cons 41 1)
  50.          (cons 210 (trans (getvar "viewdir") 1 0))
  51.    )
  52.         )
  53.      )
  54.      (setq
  55.        SOLD_list_t2
  56.         (entmakex
  57.    (list (cons 0 "TEXT")
  58.          (cons 100 "AcDbEntity")
  59.          (cons 8 "MAIN")
  60.          (cons 100 "AcDbText")
  61.          (cons 10 tx2)
  62.          (cons 40 txscale)
  63.          (cons 1 t2)
  64.          (cons 41 0.8)
  65.          (cons 7 "Standard")
  66.          (cons 41 1)
  67.          (cons 210 (trans (getvar "viewdir") 1 0))
  68.    )
  69.         )
  70.      )
  71.      (setq
  72.        SOLD_list_t3
  73.         (entmakex
  74.    (list (cons 0 "TEXT")
  75.          (cons 100 "AcDbEntity")
  76.          (cons 8 "MAIN")
  77.          (cons 100 "AcDbText")
  78.          (cons 10 tx3)
  79.          (cons 40 txscale)
  80.          (cons 1 t3)
  81.          (cons 41 0.8)
  82.          (cons 7 "Standard")
  83.          (cons 41 1)
  84.          (cons 210 (trans (getvar "viewdir") 1 0))
  85.    )
  86.         )
  87.      )
  88.      (setq
  89.        SOLD_list_t4
  90.         (entmakex
  91.    (list (cons 0 "TEXT")
  92.          (cons 100 "AcDbEntity")
  93.          (cons 8 "MAIN")
  94.          (cons 100 "AcDbText")
  95.          (cons 10 tx4)
  96.          (cons 40 txscale)
  97.          (cons 1 t4)
  98.          (cons 41 0.8)
  99.          (cons 7 "Standard")
  100.          (cons 41 1)
  101.          (cons 210 (trans (getvar "viewdir") 1 0))
  102.    )
  103.         )
  104.      )
  105.      (setq
  106.        SOLD_list_t5
  107.         (entmakex
  108.    (list (cons 0 "TEXT")
  109.          (cons 100 "AcDbEntity")
  110.          (cons 8 "MAIN")
  111.          (cons 100 "AcDbText")
  112.          (cons 10 tx5)
  113.          (cons 40 txscale)
  114.          (cons 1 t5)
  115.          (cons 41 0.8)
  116.          (cons 7 "Standard")
  117.          (cons 41 1)
  118.          (cons 210 (trans (getvar "viewdir") 1 0))
  119.    )
  120.         )
  121.      )
  122.    )
  123.    (progn
  124.      (DEL_DD)
  125.    )
  126. )
  127.       )
  128.       (progn
  129. (setq tt 1)
  130. (DEL_DD)
  131.       )
  132.     )
  133. )
  134. )
  135. (defun VHerror (msg1)
  136. (setq msg1 "\n***提示:***")
  137. (setq msg2
  138. "\n***程序被中断***"
  139. )
  140. (setq tt 1)
  141. (princ msg1)
  142. (princ msg2)
  143. (DEL_DD)
  144. (setq *error* olderror)
  145. )
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-6-4 02:31 , Processed in 0.249978 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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