乐筑天下

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

[编程交流] 恢复默认属性lo

[复制链接]

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 12:03:16 | 显示全部楼层 |阅读模式
你好
有没有办法将已移动的属性恢复到其原始(默认)位置?
谢谢
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 12:20:34 | 显示全部楼层
请尝试以下操作:
  1. ;; Restore Attribute Position  ~  By Lee Mac  ~  12.12.2009
  2. (defun c:ResAtt (/ *error* BLK DOC ENT NPT OBJ UFLAG VEC)
  3. (vl-load-com)
  4. (setq doc (vla-get-ActiveDocument
  5.              (vlax-get-acad-object)))
  6. (defun *error* (msg)
  7.    (and uflag (vla-EndUndoMark doc))
  8.    (or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")
  9.        (princ (strcat "\n** Error: " msg " **")))
  10.    (princ))
  11.    
  12. (while
  13.    (progn
  14.      (setq ent (car (nentsel "\nSelect Attribute to Reset: ")))
  15.      (cond (  (eq 'ENAME (type ent))
  16.               (if (eq "AcDbAttribute"
  17.                       (vla-get-ObjectName
  18.                         (setq obj (vlax-ename->vla-object ent))))
  19.                
  20.                 (if (eq :vlax-true (vla-get-LockPosition obj))
  21.                   (princ "\n** Invalid Attribute Type **")
  22.                   (progn
  23.                     (setq uflag (not (vla-StartUndoMark doc)))
  24.                     (vlax-for sub (vla-item
  25.                                     (vla-get-Blocks doc)
  26.                                       (vla-get-Name
  27.                                         (setq blk (vla-ObjectIdtoObject doc (vla-get-OwnerID obj)))))
  28.                       (if (and (eq "AcDbAttributeDefinition" (vla-get-ObjectName sub))
  29.                                (apply (function eq)
  30.                                       (mapcar (function strcase)
  31.                                               (mapcar (function vla-get-TagString) (list obj sub)))))
  32.                         
  33.                         (setq vec (vlax-safearray->list
  34.                                     (vlax-variant-value
  35.                                       (vlax-get-property sub
  36.                                        
  37.                                         (if (eq acAlignmentLeft (vla-get-Alignment obj))
  38.                                           'InsertionPoint 'TextAlignmentPoint)))))))
  39.                     (if vec
  40.                       (progn
  41.                         (setq nPt (mapcar (function +) (vlax-safearray->list
  42.                                                          (vlax-variant-value
  43.                                                            (vla-get-InsertionPoint blk))) vec))
  44.                         (vlax-put-property obj
  45.                         
  46.                           (if (eq acAlignmentLeft (vla-get-Alignment obj))
  47.                            
  48.                             'InsertionPoint 'TextAlignmentPoint)
  49.                           (vlax-3D-point nPt))))
  50.                     
  51.                     (setq uflag (vla-EndUndoMark doc))))
  52.                
  53.                 (princ "\n** Object Must be an Attribute **"))))))
  54. (princ))
回复

使用道具 举报

15

主题

687

帖子

169

银币

中流砥柱

Rank: 25

铜币
582
发表于 2022-7-6 12:35:47 | 显示全部楼层
你好
 
ATTSYNC命令?
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 12:48:35 | 显示全部楼层
 
哈哈-漂亮的一个Gile。。。但我还是玩得很开心
回复

使用道具 举报

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 12:56:26 | 显示全部楼层
谢谢李和吉尔。
Gile的方法当然更实用(虽然我必须在函数中使用它,我们会看到它想要的用户响应),Lee Mac的方法更具指导性。
谢谢你们俩。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 13:13:28 | 显示全部楼层
不客气Alex
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-5 10:32 , Processed in 0.375673 second(s), 64 queries .

© 2020-2025 乐筑天下

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