获取已知标注的全局比例,并置为现在
有这么一句:
(defun c:RD()
(command"-dimstyle""r"""))
可以实现命令”RD“后,点击已存在的标注,就将该标注的全局变量赋给了DimScale,没有问题。
现在我是想,怎么先可以:(1)先选择标注,再“RD”,回车后,就完成了DIMScale赋值。(2)如果没有选择标注,则提示选择标注尺寸,选择后,回车,完成赋值。选择尺寸时,要可以点选,也可以框选,只要选上了就行。
哪位大神帮忙写一下?
;;;设置当前标注
(defun c:rd(/ ss)
(setq ss (ssget ":S"))
(command "-dimstyle" "r" "" ss)
(setvar "cecolor" "bylayer")
(command "Laymcur" ss)
(princ)
) 不建议这么做,为什么不直接使用Annotative Scale呢?都不需要再搞这些,没什么意义了
e2002 发表于 2022-4-21 10:12
不建议这么做,为什么不直接使用Annotative Scale呢?都不需要再搞这些,没什么意义了
图纸空间要设置多个步骤,Annotative Scale 单行标注好用,双行标注会发现不好摆放 alexmai 发表于 2022-4-21 11:11
;;;设置当前标注
(defun c:rd(/ ss)
(setq ss (ssget ":S"))
没错,是我想要的,谢谢。 本帖最后由 sunfj 于 2022-4-21 19:43 编辑
alexmai 发表于 2022-4-21 11:11
;;;设置当前标注
(defun c:rd(/ ss)
(setq ss (ssget ":S"))
我想再做一下改动,麻烦看看怎么改才行?
(defun c:rd ()
(setq(ssget ":S"))
;此步需要判断选择的对象是尺寸还是图框块
;如果选择的是尺寸,则执行下面的三行语句
(command "-dimstyle" "r" "" ss)
(setvar "cecolor" "bylayer")
(command "Laymcur" ss)
;如果选择的是图框块,则将块的比例值赋给dimscale,即执行下面几句
(setq entlist (entget (car name)));其中name是选择的图框名字
(setq sc (cdr (assoc 41 entlist)))
(command "dimscale" (* 1 sc))
;通过上面的两种选择,就可以实现即可以刷尺寸也可以刷图框来确定新的dimscale
)
sunfj 发表于 2022-4-21 19:41
我想再做一下改动,麻烦看看怎么改才行?
(defun c:rd ()
图框 一般是放在图纸空间的 不错不错,就喜欢这种讨论帖
页:
[1]