找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 562|回复: 2

[测试]:UCS下的标注

[复制链接]

已领礼包: 593个

财富等级: 财运亨通

发表于 2004-2-26 01:28:10 | 显示全部楼层 |阅读模式

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

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

×
  1. [php]
  2. ;;本程序用来测试在UCS下生成块实体并插入当前图形
  3. ;;可以在UCS或者进行了视图扭转的情况下使用的简单标注
  4. ;;本程序用来测试在UCS下生成块实体并插入当前图形
  5. (defun c:test (/ p thisdrawing blocks modelspace blkref blkdef txt)
  6.   (setq        thisdrawing (vla-get-activedocument (vlax-get-acad-object))
  7.         blocks            (vla-get-blocks thisdrawing)
  8.         modelspace  (vla-get-modelspace thisdrawing)
  9.   )
  10.   (vla-startundomark thisdrawing)
  11.   ;;标记UNDO
  12.   (while (setq p (getpoint "\nPoint: "))
  13.     ;;块一定要定义在原点
  14.     ;;Normal 保证实体在WCS下
  15.     (setq blkdef (vla-add blocks (vlax-3d-point '(0. 0. 0.)) "*U"))
  16.     (vla-put-normal
  17.       (vla-addline
  18.         blkdef
  19.         (vlax-3d-point '(0. 0. 0.))
  20.         (vlax-3d-point '(10. 10. 0.))
  21.       )
  22.       (vlax-3d-point '(0. 0. 1.))
  23.     )
  24.     (vla-put-normal
  25.       (vla-addline
  26.         blkdef
  27.         (vlax-3d-point '(10. 10. 0.))
  28.         (vlax-3d-point '(40. 10. 0.))
  29.       )
  30.       (vlax-3d-point '(0. 0. 1.))
  31.     )
  32.     (vla-put-normal
  33.       (setq txt        (vla-addtext
  34.                   blkdef
  35.                   (strcat "X" (rtos (cadr p) 2 3))
  36.                   (vlax-3d-point '(10. 11. 0.))
  37.                   3.
  38.                 )
  39.       )
  40.       (vlax-3d-point '(0. 0. 1.))
  41.     )
  42.     ;;此处处理经过Put-Normal的实体
  43.     (vla-put-insertionpoint
  44.       txt
  45.       (vlax-3d-point '(10. 11. 0.))
  46.     )
  47.     (vla-put-normal
  48.       (setq txt        (vla-addtext
  49.                   blkdef
  50.                   (strcat "Y" (rtos (car p) 2 3))
  51.                   (vlax-3d-point '(10. 6. 0.))
  52.                   3.
  53.                 )
  54.       )
  55.       (vlax-3d-point '(0. 0. 1.))
  56.     )
  57.     ;;此处处理经过Put-Normal的实体
  58.     (vla-put-insertionpoint
  59.       txt
  60.       (vlax-3d-point '(10. 6. 0.))
  61.     )
  62.     ;;插入匿名块
  63.     (setq blkref
  64.            (vla-insertblock
  65.              modelspace
  66.              (vlax-3d-point
  67.                (trans p 0 1)
  68.              )
  69.              (vla-get-name blkdef)
  70.              1
  71.              1
  72.              1
  73.              0
  74.            )
  75.     )
  76.     ;;保证Normal
  77.     (vla-put-normal
  78.       blkref
  79.       (vlax-3d-point '(0. 0. 1.))
  80.     )
  81.     ;;此处处理经过Put-Normal的实体
  82.     (vla-put-insertionpoint
  83.       blkref
  84.       (vlax-3d-point
  85.         (trans p 1 0)
  86.       )
  87.     )
  88.     ;;如果视图使用Plan命令进行了扭转
  89.     (if        (not (zerop (getvar "VIEWTWIST")))
  90.       (vla-put-rotation blkref (- (getvar "VIEWTWIST")))
  91.     )
  92.   )
  93.   (princ)
  94. )[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 488个

财富等级: 日进斗金

发表于 2004-2-26 02:00:01 | 显示全部楼层
做块时vla-put-normal
插入时再vla-put-normal
就相当于在wcs下做块,再在ucs下直接插入.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

 楼主| 发表于 2004-2-26 02:04:00 | 显示全部楼层
相关背景
http://www.xdcad.net/forum/showt ... d=749738#post749738

在这种UCS下要修改Normal文字等才正确显示。修改了Normal还要修改Insertionpoint文字就到指定的位置了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-27 02:01 , Processed in 0.155688 second(s), 36 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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