多行
你好我是新来的,我只是想知道是否有一个lisp例程或任何类似的程序,可以让我自动加载我拥有的多行,而不是每次要加载不同的行时都必须进入框中选择它们。
谢谢 制作所有要使用的多行,然后将它们全部保存为块。然后,当您想要使用它们时,将它们导入,它将携带所有多行样式。
或者为预加载的新图形创建模板文件。任何一种方式都会奏效。 我所说的自动加载它们的意思是,如果我要创建一个下拉菜单,并在该下拉菜单下放置每个多行。我不知道这是否有意义。 不,这是有道理的,但老实说,你想要的有点多。如果使用工具选项板或其他工具导入它们,也同样简单。这就是如何在不学习编程的情况下创建可用的自定义工具和命令。 我工作的公司负责CAD/Microstation编程。这两个做这个程序的人更熟悉MS而不是AutoCAD。我们的一个客户所有这些菜单都是定制的,这是一个新的,他们希望纳入他们的标准。 可以在acad中保存所需的所有多行样式。mln文件(在Support文件夹中查找),并用lisp表达式调用它:
(command "_.mline" "_st" "Your_Style_Name")
并从Toolpallete、Toolbar、下拉菜单调用此表达式,或编写简短的lisp命令从命令行调用。例如:
(defun c:ml1()
(command "_.mline" "_st" "Your_Style_Name")
(princ)
); end of c:ml1
如果acad中不存在多行样式。mln对话框窗口将出现多行样式! 好的,谢谢大家。我会让他们知道的。其中一人只是在autodesk开发者网站上查看,他们在那里找不到答案。显然,他们想要的是摆脱使用MLSTYLE命令时出现的对话框。 您可以传递MLSTYLE对话框窗口和acad。mln文件。所有加载的多行样式都存储在“ACAD\u MLINESTYLE”字典中,您可以添加样式。这是我的多行样式添加函数之一:
(defun asmi-mlStyleCreate(Quont / dxfLst topOrd Count mlDict)
(setq dxfLst
(list'(0 . "MLINESTYLE")'(102 . "{ACAD_REACTORS")'(102 . "}")
'(100 . "AcDbMlineStyle")(cons 2(strcat(itoa Quont)"_PLINES"))
'(70 . 0)'(3 . "")'(62 . 256)'(51 . 1.5708)'(52 . 1.5708)
(cons 71 Quont))
Count 0.0
topOrd(-(/ Quont 2.0) 0.5)
); end setq
(repeat Quont
(setq dxfLst(append dxfLst
(list(cons 49(- topOrd Count))
'(62 . 256) '(6 . "BYLAYER")))
Count(1+ Count)
);end setq
); end repeat
(if
(null
(member
(assoc 2 dxfLst)(dictsearch(namedobjdict)"ACAD_MLINESTYLE")))
(progn
(setq mlDict
(cdr
(assoc -1
(dictsearch(namedobjdict)"ACAD_MLINESTYLE"))))
(dictadd mlDict(cdr(assoc 2 dxfLst))(entmakex dxfLst))
); end progn
); end if
(strcat(itoa Quont)"_PLINES")
); end of asmi-mlStyleCreate
您可以尝试将例如“6_PLINES”样式添加为6行:
Command: (asmi-mlStyleCreate 6)
"6_PLINES"
可以将其他多线特性添加为线型,并将线之间的偏移距离添加为参数。 我说,只要将它们添加到标准模板中,所有新的DWG都将从中创建,因为这将避免您创建下拉菜单、工具栏按钮等。
对于在此添加到模板之前创建的旧dwg,只需在下拉列表中创建一个按钮或菜单项,插入模板dwg或块(如stykface建议的),然后在添加定义后取消或退出块插入。
页:
[1]