明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1965|回复: 6

[求助]请教高手,如何能把属性块中的文字(其对齐方式为调整)与当前坐标对齐?

[复制链接]
发表于 2009-7-15 10:26:00 | 显示全部楼层 |阅读模式

请教高手,如何用LSP能把属性块中的文字(其对齐方式为调整)与当前坐标对齐?

ET工具中就有这样一个功能:TORIENT,但调整不了对齐方式为“调整”的字。

 

本帖子中包含更多资源

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

x
"觉得好,就打赏"
还没有人打赏,支持一下
 楼主| 发表于 2009-7-15 10:32:00 | 显示全部楼层

附上文件:

本帖子中包含更多资源

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

x
发表于 2009-7-16 16:54:00 | 显示全部楼层
  1. ;;; ATT=ATTRIB ENAME
  2. (Defun align-att-ucs (att / D10 D11 LL NEW OLD UR X11)
  3.   (vla-getboundingbox (vlax-ename->vla-object att) 'll 'ur)
  4.   (setq d10 (cdr (assoc 10 (entget att)))
  5. d11 (cdr (assoc 11 (entget att)))
  6. ll  (vlax-safearray->list ll)
  7. ur  (vlax-safearray->list ur)
  8. old (vlax-3d-point
  9.        (polar ll (angle ll ur) (* 0.5 (distance ll ur)))
  10.      )
  11. x11 (polar d10
  12.      (angle (getvar "UCSORG") (getvar "UCSXDIR"))
  13.      (distance d10 d11)
  14.      )
  15. att (entget att)
  16. att (subst (cons 11 x11) (assoc 11 att) att)
  17. att (entmod att)
  18. att (vlax-ename->vla-object (cdr (assoc -1 att)))
  19. x11 (vla-getboundingbox att 'll 'ur)
  20. ll  (vlax-safearray->list ll)
  21. ur  (vlax-safearray->list ur)
  22. new (vlax-3d-point
  23.        (polar ll (angle ll ur) (* 0.5 (distance ll ur)))
  24.      )
  25. att (vla-move att new old)
  26.   )
  27.   (princ)
  28. )
 楼主| 发表于 2009-7-16 19:01:00 | 显示全部楼层

( align-att-ucs "aabb");

mmmmmm大哥,我对图中块名为"aabb"进行修改,怎么出错了呢?

错误: 参数类型错误: lentityp
"aabb"

发表于 2009-7-17 09:25:00 | 显示全部楼层

1:参数是属性实体,不是块的名字。

2:只对调整对齐的属性有效,其他的对齐类型会出错。

我写的仅是针对处理对齐属性的代码。你需要自己去完善其他的如搜索块内属性和判断对齐是否为调整等代码。

 楼主| 发表于 2009-7-17 17:14:00 | 显示全部楼层
哦,谢谢mmmmmm
发表于 2010-12-29 11:57:22 | 显示全部楼层
学习了,感谢楼上的高手!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-10-2 18:20 , Processed in 0.164292 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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