KendiKong 发表于 2022-7-5 17:47:41

从fracti更改维度

我有一个lisp,可以生成多个维度。我需要知道如何将其中的一些(不是全部)转换为小数点格式,小数点后3位,末尾带有“后缀”。
 
如果有人能告诉我我将使用的确切命令和语法,那就太好了
 
哦,还有一件事,我该如何改变我在lisp中创建的一些维度的模糊样式?(不通过AutoCAD,在LISP中)

broncos15 发表于 2022-7-5 17:55:43

对所有维度信息进行vlax转储,必要的信息都在那里。我使用Lee Mac的lisp例程转储信息http://lee-mac.com/dumpobject.html.您需要做的就是使用vla put函数。

KendiKong 发表于 2022-7-5 18:07:49

不完全是我需要的。这很简单。我只需要使用autolisp语法将维度转换为带后缀的十进制:

broncos15 发表于 2022-7-5 18:13:45

学习如何进行转储并检查信息将帮助您完成此操作(如果您查看转储或转到acadauto.chm文件,它将告诉您如何完成)。学习如何使用vla函数(以及信息存储的位置)将对学习如何编写LISP例程非常有帮助。

KendiKong 发表于 2022-7-5 18:19:26

嗯,我还是lisp的初学者,所以我会试着在某个时候看一下这个,但现在我只想知道如何将常规维度属性更改为带此后缀的小数:“

broncos15 发表于 2022-7-5 18:32:18

1) 使用ssget让用户仅选择维度(请参阅Lee的参考资料,以获取以下ssget函数:http://lee-mac.com/ssget.html)
2) 利用重复函数,使用vlax ename->vla object将选择集转换为vla对象。
3) 在repeat函数中,使用vla put stylename函数,因为我建议创建另一种样式,该样式具有您想要的所有设置,因为这是一种更好的CAD实践。
4) 您需要使用vla put TextOverride或vla put textsuffix函数来输入后缀。
5) 关闭重复功能

paulmcz 发表于 2022-7-5 18:37:00

作为一名初学者,我运行以下代码:
 
(defun c:deci ()
(setvar "dimpost" "<>\"")
(setvar "dimlunit" 2)
(setvar "dimdec" 3)
(princ)
)
 
然后,我进入“维度菜单”>“更新”,并选择所有要更改的维度。

tombu 发表于 2022-7-5 18:44:42

为什么不将其创建为子标注样式,然后选择要更改为该样式的标注?

BIGAL 发表于 2022-7-5 18:48:56

试试这个
 
(while (setq obj (entsel))
(setvar "dimdec" 3)
(command "-dimstyle" "a" obj "")
)

页: [1]
查看完整版本: 从fracti更改维度