明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: 469229020@QQ.CO

[经验] 动态改标注文字高度,动态文字高度,,两个功能!两个功能!

[复制链接]
发表于 2025-3-22 17:49:18 | 显示全部楼层
本帖最后由 wangsr 于 2025-3-22 17:53 编辑
469229020@QQ.CO 发表于 2025-3-22 17:47
是动态拉标注,不是拉文字

谢谢 普通标注没问题好用
如果支持注释性标注就更好了


回复 支持 反对

使用道具 举报

发表于 2025-3-22 19:50:29 | 显示全部楼层
看不到啊看不到
回复 支持 反对

使用道具 举报

发表于 2025-3-22 21:18:51 | 显示全部楼层
什么情况,有没有演示
回复 支持 反对

使用道具 举报

发表于 2025-3-22 23:52:05 | 显示全部楼层
这个功能是做什么,贴图
回复 支持 反对

使用道具 举报

发表于 2025-3-25 12:55:39 | 显示全部楼层
有过,下过免费的,不过没有捕捉功能,你这个有捕捉功能么?
回复 支持 反对

使用道具 举报

发表于 2025-3-27 06:43:56 来自手机 | 显示全部楼层
跟sc比例放大有啥区别
回复 支持 反对

使用道具 举报

发表于 2025-4-3 23:52:09 | 显示全部楼层
这么简单个玩意收这么贵我刚写一个效果差不多

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

发表于 2025-8-14 15:55:48 | 显示全部楼层
谢谢 普通标注没问题好用
如果支持注释性标注就更好了
回复 支持 反对

使用道具 举报

发表于 2025-8-14 21:04:57 | 显示全部楼层
本帖最后由 amook147 于 2025-8-14 21:09 编辑

用AI写的  2分钟就搞定了 。。。。 你这明经币赚的真轻松。。。




(defun c:dtwz (/ ent ename enodelist oldheight newheight pt1 pt2 dist scale
                        oldosmode oldcmdecho cmdactive grread-result done)
    ; 保存系统变量原始值
    (setq oldosmode (getvar "osmode")
          oldcmdecho (getvar "cmdecho")
          done nil  ; 循环控制变量
          sensitivity 20.0  ; 灵敏度控制值,数值越大灵敏度越低
    )
   
    ; 设置临时系统变量
    (setvar "osmode" 0)    ; 关闭对象捕捉
    (setvar "cmdecho" 0)   ; 关闭命令回显
   
    ; 局部错误处理函数
    (defun *error* (msg)
        (princ (strcat "\n错误: " msg))
        ; 恢复文字原始高度
        (if (and ename oldheight)
            (progn
                (setq enodelist (subst (cons 40 oldheight) (assoc 40 (entget ename)) (entget ename)))
                (entmod enodelist)
                (entupd ename)
            )
        )
        ; 恢复系统变量
        (setvar "osmode" oldosmode)
        (setvar "cmdecho" oldcmdecho)
        (princ)
    )
   
    ; 提示选择文字对象
    (princ "\n请选择要调整大小的文字: ")
    (setq ent (entsel))
   
    ; 检查选择是否有效
    (if (not ent)
        (progn
            (princ "\n未选择任何对象!")
            (setvar "osmode" oldosmode)
            (setvar "cmdecho" oldcmdecho)
            (princ)
            (return)
        )
    )
   
    ; 解析选择的对象信息
    (setq ename (car ent)
          enodelist (entget ename)
    )
   
    ; 检查是否为文字对象
    (if (not (member (cdr (assoc 0 enodelist)) '("TEXT" "MTEXT")))
        (progn
            (princ "\n选择的不是文字对象!")
            (setvar "osmode" oldosmode)
            (setvar "cmdecho" oldcmdecho)
            (princ)
            (return)
        )
    )
   
    ; 获取当前文字高度
    (setq oldheight (cdr (assoc 40 enodelist)))
    (princ (strcat "\n当前文字高度: " (rtos oldheight 2 2)))
   
    ; 获取基点(参考点)
    (if (not (setq pt1 (getpoint "\n指定基点: ")))
        (progn
            (princ "\n取消操作!")
            (setvar "osmode" oldosmode)
            (setvar "cmdecho" oldcmdecho)
            (princ)
            (return)
        )
    )
   
    (princ "\n移动鼠标调整大小,点击左键确定,右键取消...")
   
    ; 使用grread函数实时捕获鼠标事件,通过done变量控制循环
    (while (not done)
        (setq grread-result (grread T 15 0))
        
        ; 解析grread返回结果
        (setq cmdactive (car grread-result)
              pt2 (cadr grread-result)
        )
        
        ; 鼠标移动事件 (5 = 鼠标移动)
        (if (= cmdactive 5)
            (progn
                ; 计算基点到当前鼠标位置的距离
                (setq dist (distance pt1 pt2))
               
                ; 计算缩放因子(降低灵敏度,使调整更易控制)
                ; 增大分母值会降低灵敏度
                (setq scale (if (< dist 2.0) 0.1 (/ dist sensitivity)))
               
                ; 计算新高度并限制范围
                (setq newheight (* oldheight scale))
                (if (< newheight 0.1) (setq newheight 0.1))  ; 最小高度
                (if (> newheight (* oldheight 20)) (setq newheight (* oldheight 20)))  ; 最大高度限制
               
                ; 实时更新文字高度
                (setq enodelist (subst (cons 40 newheight) (assoc 40 enodelist) enodelist))
                (entmod enodelist)
                (entupd ename)
            )
        )
        
        ; 左键点击确定 (3 = 左键点击)
        (if (= cmdactive 3)
            (progn
                (princ (strcat "\n最终文字高度: " (rtos newheight 2 2)))
                (setq done T)  ; 结束循环
            )
        )
        
        ; 右键点击取消 (2 = 右键点击)
        (if (= cmdactive 2)
            (progn
                ; 恢复原始高度
                (setq enodelist (subst (cons 40 oldheight) (assoc 40 enodelist) enodelist))
                (entmod enodelist)
                (entupd ename)
                (princ "\n已取消操作,恢复原始大小")
                (setq done T)  ; 结束循环
            )
        )
    )
   
    ; 恢复系统变量
    (setvar "osmode" oldosmode)
    (setvar "cmdecho" oldcmdecho)
    (princ "\n操作完成。")
    (princ)
)

(princ "\n动态文字调整大小插件已加载。命令: dtwz")
(princ)
   

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-5 04:31 , Processed in 0.143743 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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