明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2590|回复: 3

[求助]写个小程序(这个对我来说很实用)

[复制链接]
发表于 2007-11-10 14:32 | 显示全部楼层 |阅读模式
求你写一个简单而实用的小程序:
用法:运行命令---点选某图纸中任一对象文字(目的是读取这个文字的颜色)---然后框选图形或整个图形(就可以把刚才点选的文字相同颜色的文字全部选了)----然后回车----点起点(复制文字起点)---点终点(复制相同文字终点)就行了.
总的来说:就是读取文字颜色来复制框选中相同颜色的文字的小程序.本来我可以用CAD
本身的"快速选择"的功能就可以了,但图形太大,用这个"快速选择"运行得太慢,希望热心人能帮助一下.谢谢了!
发表于 2007-11-10 15:10 | 显示全部楼层
本帖最后由 作者 于 2007-11-10 15:11:43 编辑
  1. ;;;编程:BDYCAD   时间:20071110
  2. (defun c:test(/ BASCOLOR COLORSEL ENAME I II MOVEEPT MOVESPT NEW-VLNAME P1 P2 SS VLNAME)
  3.   (if(setq Ename(car(entsel"\n请选择对象:")))
  4.     (if(setq p1(getpoint"\n请输入起点:"))
  5.       (if(setq p2(getpoint p1"\n请全入终点:"))
  6. (progn
  7.    (setq BasColor(vla-get-color(vlax-ename->vla-object Ename))
  8.   ColorSel(cons 62 BasColor)
  9.   )
  10.    (if(setq SS(ssget"X"(list ColorSel(cons 0 "TEXT"))))
  11.      (progn
  12.        (setq i 0)
  13.        (setq MoveSpt(vlax-3d-point p1)MoveEpt(vlax-3d-point p2))
  14.        (repeat(sslength ss)
  15.   (setq Ename(ssname ss i)
  16.         Vlname(vlax-ename->vla-object Ename)
  17.         New-Vlname(vla-copy Vlname))
  18.   (vla-move New-Vlname MoveSpt MoveEpt)
  19.   (setq i(1+ ii)))
  20.        )
  21.      )
  22.    )
  23. )
  24.       )
  25.     )
  26.   (princ)
  27.   )
发表于 2007-11-10 16:16 | 显示全部楼层
本帖最后由 作者 于 2007-11-10 16:17:10 编辑
  1. 改一下程序运行顺序!!!!
复制代码
[code];;;编程:BDYCAD   时间:20071110 (defun c:test(/ BASCOLOR ENAME I MOVEEPT MOVESPT NEW-VLNAME P1 P2 SS VLNAME)   (if(setq SS(ssget'((0 . "TEXT"))))    (if(setq Ename(car(entsel"\n请选择对象:")))      (if(setq p1(getpoint"\n请输入起点:"))        (if(setq p2(getpoint p1"\n请全入终点:"))   (progn     (setq BasColor(vla-get-color(vlax-ename->vla-object Ename)) )     (progn         (setq i 0)         (setq MoveSpt(vlax-3d-point p1)MoveEpt(vlax-3d-point p2))         (repeat(sslength ss)    (setq Ename(ssname ss i)   Vlname(vlax-ename->vla-object Ename)   )    (if(=(vla-get-color Vlname)BasColor)      (progn        (setq New-Vlname(vla-copy Vlname))        (vla-move New-Vlname MoveSpt MoveEpt)        ))    (setq i(1+ i)))         )     )   )        )      )     )    (princ)    ) [/code]
发表于 2008-2-20 08:08 | 显示全部楼层
错误: no function definition: VLAX-ENAME->VLA-OBJECT
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-6-3 00:31 , Processed in 0.149068 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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