找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1407|回复: 12

[讨论]:缩放实体保持文字大小--拖曳效果

[复制链接]
发表于 2004-5-16 16:40:04 | 显示全部楼层 |阅读模式

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

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

×
请做出以下效果的lsp
缩放实体,文字高度大小不变。
难点:过程中需支持直观的缩放(拖曳)效果(如同scale命令过程)。(因robo也无法将拖曳状态捕捉下来,示意里面看不到:()
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-5-16 19:10:52 | 显示全部楼层
这个应该难不倒陌生人长老呀,
LISP用grread与scall对其他实体进行实时修正,文字用entmod修正。
ARX你应该很强,或许还有别的办法。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-5-16 23:09:42 | 显示全部楼层
我已经写出来了,1楼就是测试效果。我是想让有兴趣的人也来玩玩:)
顺便说一句,我没有用grread,也没有用entmod,arx我是文盲。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-5-18 12:33:39 | 显示全部楼层
呵,长老能把程序贴上来看看吗?挺有意思的。
每次看你的程序都是一种享受,简洁高深。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-5-18 20:06:36 | 显示全部楼层
长老也忒谦虚,长老应该算是编程高手了
长老能否把贴子发出来?让俺也学学,谢谢先。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-5-19 17:57:31 | 显示全部楼层
是啊,长老,让在家来借鉴借鉴吧。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-5-19 20:41:49 | 显示全部楼层
唉!~没人一起来玩,太没意思了:(
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-5-20 12:29:31 | 显示全部楼层
最初由 陌生人 发布
[B]我已经写出来了,1楼就是测试效果。我是想让有兴趣的人也来玩玩:)
顺便说一句,我没有用grread,也没有用entmod,arx我是文盲。 [/B]


没有用grread,也没有用entmod,那(拖曳)效果的第2參考點是甚麼?沒有提供測試程序看不出你要甚麼?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-5-20 13:03:09 | 显示全部楼层
就是模拟scale命令,缩放后,把字高改回原来的大小:)

加载sc2.vlx,
命令:sc2
试用(R)选项
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-5-25 12:36:26 | 显示全部楼层

  1. ;;那太簡單了吧!比較text前後字高即可!
  2. (defun C:SC2 (/ HOLDECHO SS SS1 ENT)
  3.   (prompt
  4.     "\n縮放,保留文字大小TYPE "SC2" V0-------- by 龍龍仔.2004.5"
  5.   )
  6.   (prompt "\n選擇實體: ")
  7.   (setq SS (ssget))
  8.   (if (setq SS1 (ssget "p" '((0 . "*text"))))
  9.     (setq HI (vla-get-height
  10.                (setq EN (vlax-ename->vla-object (ssname SS1 0)))
  11.              )
  12.     )
  13.   )
  14.   (if SS
  15.     (progn
  16.       (setq HOLDECHO (getvar "CMDECHO"))
  17.       (setvar "CMDECHO" 0)
  18.       (command "_.UNDO" "_GROUP")
  19.       (setvar "cmdecho" 1)
  20.       (command "_.SCALE" SS "")
  21.       (while (/= 0 (getvar "cmdactive")) (command PAUSE))
  22.       (setvar "cmdecho" 0)
  23.       (if SS1
  24.         (progn
  25.           (setq HI (/ HI (vla-get-height EN)))
  26.           (setq N 0)
  27.           (repeat (sslength SS1)
  28.             (setq ENT (vlax-ename->vla-object (ssname SS1 N)))
  29.             (vla-put-height ENT (* HI (vla-get-height ENT)))
  30.             (setq N (1+ N))
  31.           )
  32.         )
  33.       )
  34.     )
  35.   )
  36.   (command "_.UNDO" "_END")
  37.   (setvar "CMDECHO" HOLDECHO)
  38.   (princ)
  39. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-5-25 14:00:18 | 显示全部楼层
对了,lucas,你觉得用undo -group -end 和undo be, e哪个爽一点?
谢谢龙龙仔参与讨论,付上我的源程序:(有时我也喜欢直接用命令:),用scaletext一来图省事,二来对mtext也有效 ),其中缩放用了dxf10,未经验证,应该没问题吧?呵呵

  1. ;;sc2 = 缩放,保留文字大小v1.2

  2. (defun c:sc2 (/ oc ss e1 p1 p0 p2 sc)
  3. (princ "\n缩放,保留文字大小v1.2------------------------------ by 陌生人.2004.5   \n选择实体:")
  4. (vl-cmdf "_.undo" "be")
  5. (setq oc (getvar "cmdecho")
  6.        ss (ssget)
  7.        e1 (ssname ss 0)
  8.        p1 (cdr(assoc 10 (entget e1))))
  9. (setvar "cmdecho" 1)
  10. (vl-cmdf "_.scale" ss "" (setq p0 (getpoint "\n缩放基点:")))
  11. (while (/= "" (getvar "CMDNAMES"))(vl-cmdf pause))
  12. (setq p2 (cdr(assoc 10 (entget e1)))
  13.        sc (/(distance p2 p0)(distance p1 p0)))
  14. (setvar "cmdecho" 0)
  15. (vl-cmdf "_.scaletext" (ssget "P" '((0 . "*TEXT"))) ""  "" "s" (/ 1 sc))
  16. (setvar "cmdecho" oc)
  17. (vl-cmdf "_.undo" "e")
  18. (princ)
  19. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-3-2 09:51:55 | 显示全部楼层
:(
没看到所说的实时拖拽效果,输入基点后,图形无变化。
另,如果输入基点后,跟着输入小于1的变化比例,如0.5,则文字还是跟着变小了,并没有实现程序的文字重新放大功能,为什么?程序对于大于1的变化比例,如果不是整数,如1.5,同样达不到效果。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-6-14 10:05:20 | 显示全部楼层
不知道最后怎么样了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-25 12:20 , Processed in 0.364197 second(s), 56 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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