Mr.xu 发表于 2018-5-20 12:57:23

【已解决】CAD标注的文字为多行文字,如何设置为单行文字?

本帖最后由 Mr.xu 于 2018-6-10 16:38 编辑

CAD标注的文字为多行文字,如何设置为单行文字?

当我将标注用X炸开以后,发现文字为多行字,如何设置标注文字为单行文字呢?

newer 发表于 2018-5-20 14:03:54

你要想炸开,炸开后,再炸开下文字就行了。
不想炸开标注,那标注文字是什么也就无所谓了。

王子 发表于 2018-5-20 14:11:47

转换啊,,,,,没啥好办法

Mr.xu 发表于 2018-5-20 14:20:20

大量的标注文字,需要炸开以后变成单行文字进行别的操作,现在需要炸开2次,第一次是把标注炸开,第二次是将标注炸开的多行字炸开为单行字比较麻烦,所以先问问,有没有什么设置的方法将标注炸开以后直接变成单行字

newer 发表于 2018-5-20 16:27:39

Mr.xu 发表于 2018-5-20 14:20
大量的标注文字,需要炸开以后变成单行文字进行别的操作,现在需要炸开2次,第一次是把标注炸开,第二次是 ...

直接说下你想要做什么? 写程序就不用炸开。

Mr.xu 发表于 2018-5-20 19:38:45

标注线段长度,然后将标注打开,只保留长度数字,并且是单行文字格式的。

LoveArx 发表于 2018-5-20 20:35:05

Mr.xu 发表于 2018-5-20 19:38
标注线段长度,然后将标注打开,只保留长度数字,并且是单行文字格式的。

论坛前几天就有代码,找找

为什么要炸开呢,你把尺寸界限隐藏就行了。标注炸开不是好习惯。

WhoCanSay 发表于 2018-5-21 11:20:14

估计标注是多行文字,想单行的话,只有找桌子公司了。

Mr.xu 发表于 2018-6-10 16:37:21

已解决了! 将标注文字设置颜色,然后用X炸开,然后根据颜色选择,在用X炸开一次。虽然比较麻烦,但是也没有别的办法了

newer 发表于 2018-6-10 16:45:50

Mr.xu 发表于 2018-6-10 16:37
已解决了! 将标注文字设置颜色,然后用X炸开,然后根据颜色选择,在用X炸开一次。虽然比较麻烦,但是也没 ...

你想要做什么呢? 你这么做,他们还是标注吗?
你还是想得到那个文字,标注还在?

写个简单的代码就得到了,不用你这么麻烦。

Mr.xu 发表于 2018-6-10 17:04:32

标注线段长度,我只需要标注的数字,并且是单行文字格式的数字。

newer 发表于 2018-6-10 17:18:48

本帖最后由 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:51

第二种。。。。

newer 发表于 2018-6-10 17:38:34

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)
)


newer 发表于 2018-6-10 17:49:02

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
查看完整版本: 【已解决】CAD标注的文字为多行文字,如何设置为单行文字?