【已解决】CAD标注的文字为多行文字,如何设置为单行文字?
本帖最后由 Mr.xu 于 2018-6-10 16:38 编辑CAD标注的文字为多行文字,如何设置为单行文字?
当我将标注用X炸开以后,发现文字为多行字,如何设置标注文字为单行文字呢?
你要想炸开,炸开后,再炸开下文字就行了。
不想炸开标注,那标注文字是什么也就无所谓了。 转换啊,,,,,没啥好办法 大量的标注文字,需要炸开以后变成单行文字进行别的操作,现在需要炸开2次,第一次是把标注炸开,第二次是将标注炸开的多行字炸开为单行字比较麻烦,所以先问问,有没有什么设置的方法将标注炸开以后直接变成单行字 Mr.xu 发表于 2018-5-20 14:20
大量的标注文字,需要炸开以后变成单行文字进行别的操作,现在需要炸开2次,第一次是把标注炸开,第二次是 ...
直接说下你想要做什么? 写程序就不用炸开。
标注线段长度,然后将标注打开,只保留长度数字,并且是单行文字格式的。 Mr.xu 发表于 2018-5-20 19:38
标注线段长度,然后将标注打开,只保留长度数字,并且是单行文字格式的。
论坛前几天就有代码,找找
为什么要炸开呢,你把尺寸界限隐藏就行了。标注炸开不是好习惯。
估计标注是多行文字,想单行的话,只有找桌子公司了。 已解决了! 将标注文字设置颜色,然后用X炸开,然后根据颜色选择,在用X炸开一次。虽然比较麻烦,但是也没有别的办法了 Mr.xu 发表于 2018-6-10 16:37
已解决了! 将标注文字设置颜色,然后用X炸开,然后根据颜色选择,在用X炸开一次。虽然比较麻烦,但是也没 ...
你想要做什么呢? 你这么做,他们还是标注吗?
你还是想得到那个文字,标注还在?
写个简单的代码就得到了,不用你这么麻烦。 标注线段长度,我只需要标注的数字,并且是单行文字格式的数字。 本帖最后由 newer 于 2018-6-10 17:20 编辑
Mr.xu 发表于 2018-6-10 17:04
标注线段长度,我只需要标注的数字,并且是单行文字格式的数字。
说不清楚意思,
1、你是希望ACAD的标注命令,就给你标注出这样的东西,
2、还是通过程序,实现标注,只要单行的数字显示出来?
第一个,实现不了,CAD自身标注实体,文字和标注都在一起的。
第二个,N多种方法实现
说到底,你的问题是想ACAD标注出来的东西DIMENSION尺寸标注实体,炸开一次,就是单行文字吗?
没有二次开发写代码做不到的事情,
也改变不了ACAD自身实体数据类型的规定。
第二种。。。。 Mr.xu 发表于 2018-6-10 17:35
第二种。。。。
一个例子,下面代码,标注直线的长度,字高50,间隙20,单行文字
(defun c:tt ()
(if (setq e (car (xdrx_entsel "\n拾取直线<退出>:" '((0 . "LINE")))))
(progn
(setq len (xdrx_getpropertyvalue e "length")
vec (xdrx_entity_getecs e)
vec (caddr vec)
)
(setq pt (xdrx_getpropertyvalue e "midpoint")
pt (mapcar '+ pt (xdrx_vector_product vec 50.0))
)
(xdrx_text_make pt (rtos len 2 1) 20.0 (xdrx_getpropertyvalue e "angle"))
(setq box (xdrx_text_box (entlast))
pt1 (xd::geom:get9pt box 2))
(xdrx_entity_move (entlast) pt1 pt)
)
)
(princ)
)
Mr.xu 发表于 2018-6-10 17:35
第二种。。。。
如果已经有标注了,想处理成只要一个单行文字,用下面的
(defun c:tt ()
(if (and (xdrx_initssget "\n选取要处理的标注<退出>:")
(setq ss (xdrx_ssget '((0 . "DIMENSION"))))
)
(progn
(xdrx_setmark)
(xdrx_entity_explode t ss)
(setq ss (xdrx_getss))
(setq ss (xd::pickset:getsub ss '((0 . "~text"))))
(xdrx_entity_delete ss)
)
)
(princ)
)
页:
[1]
2