明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2343|回复: 5

文字内容替换用反应器来做自觉更方便

[复制链接]
发表于 2011-12-14 17:58 | 显示全部楼层 |阅读模式
本帖最后由 crazylsp 于 2011-12-14 20:34 编辑

  1. (DEFUN C:CC ()

  2.     (vlr-command-reactor nil '(( :vlr-commandEnded .  gv ))) ;;构造 AutoCAD 命令反应器,对命令事件(结束命令事件)给出通知
  3. )
  4. ;;调用回调函数  reactor_object 调用回调函数的 VLR 对象; list 包含单个元素的表 [字符串表示命令名]
  5. (defun  gv (reactor_object list / )
  6.    (setq  obj    (vlax-get-acad-object)) ;;返回CAD系统组件
  7.    (setq  docu   (vla-get-activedocument obj)) ;;返回CAD当前活动文档
  8.    (setq  mspace (vla-get-modelspace docu)) ;;返回CAD模型空间
  9.    (setq txtobj1 (vlax-ename->vla-object (entlast))) ;;返回最后一个 AutoLISP 类型的对象名转换为 VLA 对象
  10.    (setq str0    (vla-get-TextString  txtobj1)) ;;返回最后一个VLA 对象的文字内容
  11.    ;(setq pt      (vla-get-InsertionPoint txtobj1)) ;;返回最后一个VLA 对象的插入点位置
  12.    ;(setq pt      (vlax-safearray->list (vlax-variant-value pt))) ;;插入点变体转化成AutoLISP 类型变量
  13.   
  14.    ;(setq pt      (list(car pt)(cadr pt)(caddr pt)))
  15.    ;(setq pt1     (polar pt 2.355 2))
  16.    ;(setq pt2     (polar pt 5.495 2))  
  17.   
  18.    ;(setq ss1    (vla-get-SelectionSets docu))
  19.    ;(setq txtobj (vla-selectatpoint  (setq ss2(vla-add ss1 "ljs000" )) pt  nil nil))
  20.    ;(setq txtobj (vla-select ss1 pt1 pt2  nil nil))
  21.    ;(vla-RemoveItems ss1 "ljs000" )
  22.    ;(vla-addItems ss2 txtobj )
  23.    ;(setq en      (ssname (ssget  pt ) 0 ))  ;;选择插入点位置的AutoLISP 类型的对象
  24.    ;(if (null en)
  25.      ;(setq en      (ssname (ssget  pt1 ) 0 ))  
  26.    ; )
  27.     ;(if (null en)
  28.      ;(setq en      (ssname (ssget  pt2 ) 0 ))  
  29.     ;)

  30.    ;(setq en      (ssname (ssget pt ) 0 ))
  31.    (setq en      (car (entsel"\npick text") ))
  32.    (setq txtobj  (vlax-ename->vla-object en)) ;;返回 AutoLISP 类型的对象名转换为 VLA 对象
  33.    (vla-delete txtobj1) ;; 删除最后一个VLA 的文字对象
  34.    (vla-put-TextString  txtobj  str0) ;;将文字内容赋予下方的文字VLA 对象
  35. )

"觉得好,就打赏"
还没有人打赏,支持一下

本帖被以下淘专辑推荐:

发表于 2011-12-14 18:19 | 显示全部楼层
  不过反应器CAD似乎玩不起!
发表于 2011-12-14 18:56 | 显示全部楼层
错误: 输入的列表有缺陷
发表于 2011-12-14 19:52 | 显示全部楼层
这个有没有时间延迟?如果没有延迟很容易产生误操作吧,其实循环选取也是可以接受的,不过楼主的思路很新颖。
 楼主| 发表于 2011-12-14 20:32 | 显示全部楼层
本帖最后由 crazylsp 于 2011-12-14 20:46 编辑

谢谢。
有这个问题反应器要做得尽量简单,否则CAD带不动。
楼上改好了,不过都是按自己的想法, 目的是不要选错,又懒得输文字内容替换程序的命令。
有想改进功能的朋友自己可以修改。呵呵
发表于 2011-12-14 23:02 | 显示全部楼层
我不会用哦 点了文字就没有了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-12 23:52 , Processed in 0.181280 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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