dxf out m的自动lisp程序
好的,我对编写lisp程序很陌生。今天开始写作,但它对我没有任何帮助。我需要它做的是在图形上选择区域,然后用名称serialnumber\u fmvss dxf这些部分。dxf,serialnumber\u cmtv。。。。等不确定我遗漏了什么,但这是我已经掌握的代码 (defun c:platedxf ()
(setq fileprefix (getstring "Enter serial number: "))
(setq fmvss (strcat fileprefix "_fmvss.dxf"))
(setq cmtv (strcat fileprefix "_cmtv.dxf"))
(setq ct1 (strcat fileprefix "_ct1.dxf"))
(setq ct2 (strcat fileprefix "_ct2.dxf"))
(setq ct3 (strcat fileprefix "_ct3.dxf"))
(setq ct4 (strcat fileprefix "_ct4.dxf"))
(setq ct5 (strcat fileprefix "_ct5.dxf"))
(setq pt1 '(17.6960 4.5 0))
(setq pt2 '(23.6960 0 0))
(setq pt3 '(17.6960 -0.5 0))
(setq pt4 '(25.5082 -4 0))
(setq pt5 '(17.6960 -4.5 0))
(setq pt6 '(23.6959 -9 0))
(setq pt7 '(17.6960 -9.5 0))
(setq pt8 '(23.6959 -14 0) )
(setq pt9 '(17.6960 -14.5 0))
(setq pt10 '(23.695 9 -19 0))
(setq pt11 '(17.6960 -19.5 0))
(setq pt12 '(23.6959 -24 0))
(setq pt13 '(17.6960 -24.5 0))
(setq pt14 '(23.6959 -29 0))
(setq ss1 (ssget "w" pt1 pt2))
(setq ss2 (ssget "w" pt3 pt4))
(setq ss3 (ssget "w" pt5 pt6))
(setq ss4 (ssget "w" pt7 pt)
(setq ss5 (ssget "w" pt9 pt10))
(setq ss6 (ssget "w" pt11 pt12))
(setq ss7 (ssget "w" pt13 pt14))
(command "_.dxfout" fmvss "" "_O" ss1 "" "")
(command "_.dxfout" cmtv "" "_O" ss2 "" "")
(command "_.dxfout" ct1 "" "_O" ss3 "" "")
(command "_.dxfout" ct2 "" "_O" ss4 "" "")
(command "_.dxfout" ct3 "" "_O" ss5 "" "")
(command "_.dxfout" ct4 "" "_O" ss6 "" "")
(command "_.dxfout" ct5 "" "_O" ss7 "" "")
(princ)
) 还忘了将想要的dxf包含到2000个dxf文件中,而不是更新的版本 我会对你们的编码方法采取一种不同的方法,使用一个参数列表,然后用一个重复来遍历这个列表,你们可以有任意多个参数。注意,每次在重复中重做时,只需要1个ss1。
如果其他人不先做示例,我将尝试明天发布。
(command "_.dxfout" Fname "V" "2000" "_O" ss1 "" "")
; the list
((Fmvss pt1 pt2)(cmtv pt1 pt2)(........))
如果你快乐,为什么不呢
拾取pt1,拾取pt2 dxfout Fmvss
拾取pt1 pt2 dxfout Cmvt
拾取pt1 pt2 dxfout cnt1,但这会重复,直到您说停止拾取,接下来是cnt2根据需要自动递增。拾取点和编写代码没有多大意义,除非每个dwg都相同,一小部分意外移动,代码无法工作。
请澄清固定或按要求。 是的,我知道通常情况下,最好是拾取点,但这是我实际上可以避开静态点的情况之一。这将用于autocad文件的基本上是一个数据板。在这个程序之前,autocad正在从excel文件中提取信息,excel文件放在平板上的表格中。基本上,我们使用autocad的唯一原因是为雕刻机创建dog文件。所以无论如何,不是在典型的autocad文件中。 意识到我没有像我应该解释的那样好。因此,autocad文件是一个写保护文件,当我完成它时,它就会很好。这7个数据板永远不会在窗口中移动。基本上,用户打开dwg文件和excel文件。将excel文件设置为处理特定序列号,然后用户会告诉autocad文件更新链接,然后分解表格,并对剩余的文本进行dxf处理,以供雕刻机使用。 您最好在excel中进行编码,复制并粘贴到命令行,如果您有co ORD,那么它很容易。您只需使用连接将dxfout行写入列中,以生成_。dxfout Fname V 2000 O(setq ss1(ssget“w”(列表x y)(列表x y)))
你能发布excel吗?可以直接读取excel,因此不需要为您想要的每个excel使用lisp。 实际上,我无法发布excel文件,因为大部分文件都是以错误的形式出现的,它们都链接到access数据库。 excel文件不是通过lisp文件引用的。它只是被链接到autocad中的表格
页:
[1]
2