菜卷鱼 发表于 2011-10-15 19:54:39

双击属性块直接编辑属性文字

本帖最后由 菜卷鱼 于 2022-10-13 14:49 编辑

这个问题已经解决很多年了,主题现在也已经从"提问"转换成"经验"
由于当初提问提得不专业,所以大家很可能不知道我说的是什么。

正常情况,我们双击属性块的属性文字,会弹出"增加属性编辑器",不能像编辑文字一样双击直接编辑
虽然按住ctrl再双击,可以直接编辑,但是总觉得不直接。

现在稍微改造一下就可以直接双击编辑。

首先新建一个命令 attrib (别的名字也可以)

;;;;双击属性文字直接编辑
;;;;by 菜卷鱼
(defun c:attrib      (/ *error* ss pt ntp info objtype obj blkname)
(setq      cmds (if command-s
               command-s
               vl-cmdf
             )
)
(setq ss (ssget ":s"))
(if ss
    (progn
      (setq pt (cadr (nth 3 (car (ssnamex ss)))))
      (setq pt (trans pt 0 1))
      (setq ntp (nentselp pt))
      (setvar "cmdecho" 0)
      (setq info (entget (car ntp)))
      (setq objtype (cdr (assoc 0 info)))
      (cmds "undo" "be")
      ;;;;;
      (defun *error* (s)
      (if (/= s "函数被取消")
          (princ "*取消*")
      )
      (cmds "undo" "e")
      (setvar "cmdecho" 1)
      )
      ;;;;;
      (setvar "cmdecho" 0)
      (setq obj (ssname ss 0))
      (if (= objtype "ATTRIB")
      (cmds "_.attipedit" ntp)
      (cmds "_.DDATTE" ss)
      )
      (cmds "undo" "e")
      (setvar "cmdecho" 1)
    )
)
(prin1)
)
(prin1)

接着,替换原始的双击命令,操作见下图,改造后的效果见2楼。




wu0146 发表于 2022-10-10 12:31:02

按住 ctrl 再双击试试,CAD自带功能

sfzyr 发表于 2023-12-4 02:18:01

sfzyr 发表于 2023-10-29 10:09
不知道是不是版本问题,双击是调用了attrib,但是返回不了鼠标点。所以pt总是nil

(setq pt (cadr (nth 3 (car (ssnamex ss 0))))) ;双击选择对象时,ssnamex返回的对象无点:((0 <图元名: 2124f6e6d90> 1))。只有点选时才有点。即先运行命令,在点选。所以,在PT为nil 而SS又选择了对象,则可以取“lastpoint”的值来解决这个问题。(setq pt (getvar "lastpoint"))

cheefeel 发表于 2022-10-14 08:36:41

菜卷鱼 发表于 2022-10-13 14:26
单行文字默认全选,多行文字默认不是全选,CAD自带的文字编辑器就是这个逻辑
这个是改变不了的,
习惯 ...



↑这是CAD帮助文件里的一些宏介绍,
我记得语法中某一个特殊符号代表按键盘上的按键,
但是我不懂怎么表达按Ctrl+A键,
如果有这样的语法,那么在命令宏^C^C_ATTRIB之后追加Ctrl+A的语法不就可以了么

菜卷鱼 发表于 2013-12-18 14:33:55

本帖最后由 菜卷鱼 于 2022-10-10 10:25 编辑

双击属性块的非属性文字部分,会弹出原始界面"增强属性编辑器"

而双击属性文字,则可以像普通文字一样直接编辑了





罗尼 发表于 2020-12-17 12:41:37

菜卷鱼 发表于 2013-12-18 14:33
可以替代双击属性块命令

请教一下这个怎么用?我的还是要鼠标三击

菜卷鱼 发表于 2022-10-10 10:36:28

罗尼 发表于 2020-12-17 12:41
请教一下这个怎么用?我的还是要鼠标三击

现在再看看试试

cheefeel 发表于 2022-10-10 10:36:42

太感激了!!!这么干货的硬知识居然评论这么少!

菜卷鱼 发表于 2022-10-10 10:41:09

cheefeel 发表于 2022-10-10 10:36
太感激了!!!这么干货的硬知识居然评论这么少!

主要之前不是这个标题,之前是个提问,问题是"鼠标三击怎么变鼠标双击",问题提的不专业,没人明白我要说什么,二楼是自己解答自己

菜卷鱼 发表于 2022-10-10 10:43:04

cheefeel 发表于 2022-10-10 10:36
太感激了!!!这么干货的硬知识居然评论这么少!

我之前帮别人写代码别人觉得5块钱都觉得贵,你直接打赏10块!!
老板大气!!
这真的是我搞成的第一个付费程序!!

e2002 发表于 2022-10-10 11:07:02

代码中18,24,35行中有点小笔误需要修正: undo

菜卷鱼 发表于 2022-10-10 11:08:38

e2002 发表于 2022-10-10 11:07
代码中18,24,35行中有点小笔误需要修正: undo

谢谢大佬提醒,我自己是写的子程序,临时改改错了
页: [1] 2 3 4
查看完整版本: 双击属性块直接编辑属性文字