geo1595 发表于 2022-7-6 23:33:28

自定义AutoLISP命令

大家好
 
我真的没有太多的AutoLISP经验,但我想写一个脚本,让我能够:
 
1.创建新的DWG
2。txt文件
3、将此图纸保存在指定位置
4、关闭图纸
5、冲洗并重复,直到所有的水都冲洗干净。已绘制txt文件。
 
基本上,这将用于数百个。包含绘制隧道横截面坐标的txt文件。
 
这是可以做到的吗?经过数小时的研究,我只能使用批处理文件绘制一个横截面,但无法关闭或保存该图形。
 
提前感谢您的帮助

ReMark 发表于 2022-7-6 23:39:30

脚本与lisp例程并不完全相同。
 
李·麦克(Lee Mac)是CADTutor众多有天赋的lisp大师之一,他这样描述道:“……脚本只是一系列要逐个执行的AutoCAD命令,就像用户在命令行中键入它们一样。”

rkmcswain 发表于 2022-7-6 23:43:13

文本文件看起来像什么?
 
像这样的?

; X,Y coords
5214.6582,6581.1247
5218.4741,6501.2362
;etc.

geo1595 发表于 2022-7-6 23:48:02

是的,每个文本文件都是这样的

; X,Y,Z Coords
+00.0000 +00.0000 006
+01.4350 -00.0710 007
+03.5190 -00.1610 006
+04.9540 -00.2420 007
-02.3650 -00.0690 000
-02.3660 +00.1150 000
-02.3620 +00.3250 000
-02.3660 +00.5990 000
-02.3660 +00.8010 000
-02.3660 +01.0550 000
-02.3630 +01.2530 000
-02.3560 +01.4540 000
-02.3450 +01.6590 000
-02.3370 +01.8920 000
-02.3380 +02.1860 000
-02.3500 +02.5580 000
-02.3600 +02.9840 000
-02.3600 +03.2070 000
-02.3660 +03.3890 000
-02.3670 +03.5710 000
-02.3640 +03.7150 000
-02.3600 +03.8580 000
-02.3490 +04.1770 000
-02.3390 +04.3990 000
-02.3360 +04.5490 000
-02.3320 +04.6980 000
-02.3260 +04.8380 000
-02.3140 +04.9780 000
-02.2970 +05.0880 000
-02.2760 +05.1970 000
-02.2520 +05.3060 000
-02.2220 +05.4340 000
-02.1870 +05.5610 000
-02.1550 +05.6660 000
-02.1180 +05.7700 000
-02.0870 +05.8400 000
-02.0520 +05.9090 000
-02.0160 +05.9770 000
-01.9460 +06.0930 000
-01.8700 +06.2050 000
-01.7950 +06.3180 000
-01.7060 +06.4740 000
-01.6610 +06.5520 000
-01.6120 +06.6280 000
-01.5540 +06.6970 000
-01.4960 +06.7510 000
-01.4350 +06.8010 000
-01.3730 +06.8500 000
-01.3100 +06.8980 000
-01.2460 +06.9440 002
+05.5030 +07.0060 000
+05.5740 +06.9730 000
+05.6430 +06.9350 000
+05.7090 +06.8920 000
+05.7710 +06.8440 000
+05.8300 +06.7920 000
+05.8820 +06.7370 000
+05.9290 +06.6770 000
+05.9730 +06.6160 000
+06.0190 +06.5560 000
+06.0610 +06.5020 000
+06.1040 +06.4480 000
+06.1660 +06.3810 000
+06.2320 +06.3170 000
+06.2660 +06.2870 000
+06.2990 +06.2570 000
+06.3460 +06.2020 000
+06.3870 +06.1430 000
+06.4230 +06.0800 000
+06.4540 +06.0140 000
+06.4820 +05.9480 000
+06.5120 +05.8590 000
+06.5350 +05.7670 000
+06.5590 +05.6760 000
+06.5910 +05.5820 000
+06.6230 +05.4880 000
+06.6520 +05.3930 000
+06.6760 +05.2850 000
+06.6950 +05.1760 000
+06.7100 +05.0660 000
+06.7240 +04.9140 000
+06.7300 +04.7620 000
+06.7340 +04.6090 000
+06.7420 +04.4570 000
+06.7490 +04.3850 000
+06.7570 +04.3140 000
+06.7610 +04.2420 000
+06.7540 +04.1450 000
+06.7410 +04.0490 000
+06.7330 +03.9530 000
+06.7380 +03.8450 000
+06.7510 +03.7380 000
+06.7640 +03.6310 000
+06.7750 +03.5490 000
+06.7870 +03.4670 000
+06.7920 +03.3840 000
+06.7840 +03.3000 000
+06.7700 +03.2160 000
+06.7610 +03.1320 000
+06.7640 +03.0570 000
+06.7710 +02.9820 000
+06.7760 +02.9070 000
+06.7760 +02.7970 000
+06.7740 +02.6880 000
+06.7660 +02.4910 000
+06.7650 +02.4060 000
+06.7700 +02.2840 000
+06.7760 +02.1620 000
+06.7750 +02.0690 000
+06.7740 +01.9750 000
+06.7820 +01.8580 000
+06.7940 +01.7400 000
+06.8010 +01.6230 000
+06.7990 +01.5080 000
+06.7940 +01.3940 000
+06.7900 +01.2860 000
+06.7850 +01.1500 000
+06.7770 +01.0140 000
+06.7650 +00.9090 000
+06.7540 +00.8030 000
+06.7530 +00.7300 000
+06.7530 +00.6560 000
+06.7530 +00.5550 000
+06.7560 +00.4550 000
+06.7630 +00.3820 000
+06.7710 +00.3100 000
+06.7770 +00.1790 000
+06.7760 +00.0480 000
+06.7790 -00.3290 000
+06.7450 -00.5510 000
+06.7380 -00.7000 002

BIGAL 发表于 2022-7-6 23:55:31

脚本可能看起来像这样
 

open mytemplatefilefortunnels
(setq filename "c:\mytunnel\tunnel1.txt)
(load "tunnelmaker")
open mytemplatefile for tunnels
(setq filename "c:\mytunnel\tunnel2.txt")
(load "tunnelmaker")
open mytemplatefile for tunnels
(setq filename "c:\mytunnel\tunnel2.txt")
(load "tunnelmaker")

 
沿着Rkmcswain打开空白模板的方向,lisp程序打开数据文件,创建隧道,最后保存并关闭文件。这可能比将txt文件转换为脚本更容易,但也可以这样做。

geo1595 发表于 2022-7-6 23:58:28

谢谢BIGAL,这几乎完美了,但是我如何让LISP自动加载下一个txt文件呢?
基本上有很多txt文件都包含坐标。我需要绘制的不仅仅是一个名为“tunnelmaker”的txt文件。
例如,有3个名为“tunnelmaker 1”“tunnelmaker 2”“tunnelmaker 3”的txt文件,其中包含坐标0。
是否有一种编写LISP的方法,可以先按顺序打开txt文件,然后每次都保存新创建的隧道横截面,而不必事先在脚本中写入保存名称?
 
我喜欢这样做是因为在编写LISP后,我可以将其交给其他人,让他们绘制隧道横截面,而无需编辑AutoLISP文件。
 
谢谢

BIGAL 发表于 2022-7-7 00:04:25

隧道制造商内部。lsp是变量fname这是txt文件的名称。要读取的Tunnel1.txt。
 
是的,你确实需要一个可读文本文件lisp和绘制线你可以张贴一个dwg和txt文件,这样如果喜欢我,我可以找到一些时间将为你做。
 
第一步是从屏幕上的方法创建脚本来拾取文件。
 
是的,在隧道内未回答步骤lisp是一个保存dwg并关闭。
 
lisp完成后,脚本将运行下一行,因此再次打开模板并重复。

geo1595 发表于 2022-7-7 00:06:46

是的,如果您能提供任何帮助,我们将不胜感激
175475BK。txt文件
样板图纸

BIGAL 发表于 2022-7-7 00:12:57

我从你的数据中得到了这个,用记事本删除+并将空格改为“,”将006和007等改为000只需要几秒钟。
 
删除文件开头的所有注释,将行添加为第一行Ctrl A Ctrl C,然后粘贴到Autocad命令行。只是不确定这是否正确。
 

geo1595 发表于 2022-7-7 00:18:52

这正是它应该看起来的样子。我只需要一种方法来自动绘制大量的图形。
 
谢谢
页: [1] 2
查看完整版本: 自定义AutoLISP命令