乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
楼主: MikeT

[编程交流] 将标注复制到文字替代

[复制链接]

1

主题

5

帖子

4

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 16:09:15 | 显示全部楼层
大家好,
 
谢谢你的回复。我测试了这两个lisp代码,但都不太正确。VVA的代码是非常勉强的,几乎在那里,但不完全。VVA代码在文本覆盖中插入acad测量尺寸值,而不是输出值。
 
flowerrobot的代码将-1放入每个文本覆盖中。
 
在插入的图片中,有从acad捕获的尺寸。括号中的值是我想放在文字覆盖上的真实值(3D,z轴),其他值是图形中的acad测量值。我已在图纸中手动输入值,以澄清您的问题。
 
Flatted没有帮助,因为图形测量是在solidworks图形模式(模板)下完成的。它在2D中表示模型,但测量值来自模型。
 
如果客户需要acad图纸-客户获得acad图纸
 
也许我必须在Solidworks中制作尺寸“picture pefrect”,然后导出图形。尽管solidworks绘图制作不如autocad精确。
 
米凯特
161509n0o3ucacwv0vhcyy.jpg
回复

使用道具 举报

VVA

1

主题

308

帖子

308

银币

初来乍到

Rank: 1

铜币
8
发表于 2022-7-6 16:12:56 | 显示全部楼层
其他版本
  1. ;;Dim override
  2. (defun c:dimo (/ COPYDIM CURLAY DELSET DIMLST
  3.       DIMSET ERRCOUNT LAYCOL LENT
  4.       NEXTENT OVTEXT *ERROR* ACTDOC
  5.       OLDECHO)
  6. ;;; Vladimir Smirnov {Smirnoff} on dwg.ru
  7. (defun *ERROR* (msg)
  8.    (setvar "CMDECHO" oldEcho)
  9.    ); end of error
  10. (vl-load-com)
  11. (setq oldEcho(getvar "CMDECHO")
  12. actDoc(vla-get-ActiveDocument
  13.               (vlax-get-acad-object))
  14. layCol(vla-get-Layers actDoc)
  15. ); end setq
  16. (setvar "CMDECHO" 0)
  17. (if
  18.    (setq dimSet
  19.    (ssget "_:L" '((0 . "DIMENSION"))))
  20.    (progn
  21.      (setq dimLst
  22.      (mapcar 'vlax-ename->vla-object
  23.                    (vl-remove-if 'listp
  24.                     (mapcar 'cadr(ssnamex dimSet))))
  25.     ); end setq
  26.      (vla-StartUndoMark actDoc)
  27.      (foreach dim dimLst
  28.              (vla-put-TextOverride dim (dim-get-text-string (vlax-vla-object->ename dim)))
  29. (vla-put-Color dim 22)
  30.        )
  31.      (vla-EndUndoMark actDoc)
  32.      ); end progn
  33.    ); end if
  34. (setvar "CMDECHO" oldEcho)
  35. (princ)
  36. ); end of c:dimo
  37. (defun Col_Item_Find (Collection Item / result)
  38. (if
  39.    (not
  40.      (vl-catch-all-error-p  
  41. (setq result
  42.        (vl-catch-all-apply 'vla-item
  43.          (list Collection Item)))))
  44.    result
  45.    ); end if
  46. ); end of Col_Item_Find
  47. ;;; Dim restore
  48. (defun c:dimr (/ COPYDIM CURLAY DELSET DIMLST
  49.       DIMSET ERRCOUNT LAYCOL LENT
  50.       NEXTENT OVTEXT *ERROR* ACTDOC
  51.       OLDECHO)
  52. ;;; Vladimir Smirnov {Smirnoff} on dwg.ru
  53. (defun *ERROR* (msg)
  54.    (setvar "CMDECHO" oldEcho)
  55.    ); end of error
  56. (vl-load-com)
  57. (setq oldEcho(getvar "CMDECHO")
  58. actDoc(vla-get-ActiveDocument
  59.               (vlax-get-acad-object))
  60. layCol(vla-get-Layers actDoc)
  61. ); end setq
  62. (setvar "CMDECHO" 0)
  63. (if
  64.    (setq dimSet
  65.    (ssget '((0 . "DIMENSION"))))
  66.    (progn
  67.      (setq dimLst
  68.      (mapcar 'vlax-ename->vla-object
  69.                    (vl-remove-if 'listp
  70.                     (mapcar 'cadr(ssnamex dimSet))))
  71.     errCount 0
  72.     ); end setq
  73.      (vla-StartUndoMark actDoc)
  74.      (foreach dim dimLst
  75. (setq curLay(vla-get-Layer dim))
  76. (if
  77.   (/= :vlax-true
  78.       (vla-get-Lock(Col_Item_Find layCol curLay)))
  79.   (progn
  80. (vla-put-TextOverride dim "<>")
  81. (vla-put-Color dim 82)
  82. ); end progn
  83.   (setq errCount(1+ errCount))
  84.   ); end if
  85. ); end foreach
  86.      (if(/= 0 errCount)
  87. (princ
  88.   (strcat "\n"
  89.           (itoa errCount)" were on locked layer!"))
  90. ); end if
  91.      (vla-EndUndoMark actDoc)
  92.      ); end progn
  93.    ); end if
  94. (setvar "CMDECHO" oldEcho)
  95. (princ)
  96. )
  97. (defun mip_MTEXT_Unformat ( Mtext / text Str )
  98. (setq MM Mtext)
  99. (setq Text "")
  100.   (while (/= Mtext "")
  101.        (cond
  102.          ((wcmatch (strcase (setq Str (substr Mtext 1 2))) "\\[\\{}]")
  103.            (setq Mtext (substr Mtext 3) Text   (strcat Text Str)))
  104.          ((wcmatch (substr Mtext 1 1) "[{}]")(setq Mtext (substr Mtext 2)))
  105.          ((wcmatch (strcase (setq Str (substr Mtext 1 2))) "\\[LO`~]")
  106.    (setq Mtext (substr Mtext 3)))
  107.          ((wcmatch (strcase (substr Mtext 1 2)) "\\[ACFHQTW]")
  108.            (setq Mtext (substr Mtext (+ 2 (vl-string-search ";" Mtext)))))
  109.   ((wcmatch (strcase (substr mtext 1 4)) "\\PQ[CRJD],\\PXQ")  ;;;Add by KPblC
  110.    (setq mtext (substr mtext (+ 2 (vl-string-search ";" mtext))))
  111.    )
  112.          ((wcmatch (strcase (substr Mtext 1 2)) "\\P")
  113.            (if (or
  114.            (zerop (strlen Text))
  115.            (= " " (substr Text (strlen Text)))
  116.            (= " " (substr Mtext 3 1)))
  117.               (setq Mtext (substr Mtext 3))
  118.               (setq Mtext (substr Mtext 3) Text (strcat Text " "))))
  119.   ((wcmatch (strcase (substr Mtext 1 2)) "\\S")
  120.            (setq Str   (substr Mtext 3 (- (vl-string-search ";" Mtext) 2))
  121.                  Text  (strcat Text (vl-string-translate "#^\" "/^\" Str))
  122.                  Mtext (substr Mtext (+ 4 (strlen Str)))))
  123.   (t (setq Text (strcat Text (substr Mtext 1 1)) Mtext (substr Mtext 2)))))
  124. Text)
  125. (defun dim-get-text-string ( dim / str)
  126. (setq str "")
  127.   (vlax-for item (vla-item (vla-get-blocks
  128.                         (vla-get-activedocument (vlax-get-acad-object))
  129.                       ) ;_ end of vla-get-Blocks
  130.                       (cdr (assoc 2 (entget dim)))
  131.             ) ;_ end of vla-item
  132.     (if (vlax-property-available-p item 'Textstring)
  133.          (setq str (vla-get-textstring item))
  134.       )
  135.     )
  136. (mip_MTEXT_Unformat str)
  137. )
  138. (princ "\nType Dimo to override and Dimr to restore")
回复

使用道具 举报

1

主题

5

帖子

4

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 16:17:11 | 显示全部楼层
你好
 
我只是测试了一下。。。它工作得很好
 
非常感谢VVA的专业知识!
 
米凯特
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-4 19:20 , Processed in 0.777610 second(s), 58 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表