legg1979 发表于 2022-7-6 06:12:50

基于块插入例程

大家好,
 
首先,我是一个非常基本的lisp用户。我可以写非常简单的lisp(可能写得不太好,但很管用!)每天都是无聊的任务。
 
我试着写一个lisp,根据文件名的一部分插入一个块。
 
我将用以下方式命名一个块。
 
零件号1-2。图纸
 
当用户想要插入块时,可能有任何一个零件号。因此,只能输入1个零件号。
 
我需要使用lisp通配符块名。
我在“wcmatch”上搞得一团糟,但我真的没法想清楚,嘿,我说过我是一个基本用户!!
 
无论如何。经过数天、数小时的试错和网络搜索,我找到了一个代码,它几乎满足了我的需要。
唯一的问题是在插入块后,用户需要设置缩放和旋转。我花了很长时间试图找出“”将去哪里,以消除用户必须这样做,但就我而言,我无法让它工作。
 
此外,我还提供了一个线索,如果我想分解块,我会在哪里添加“*”。
 
提前感谢你们的帮助。
 
这是密码。
 
(defun c:test(/file dir files itm n fil qt)(setq file(getstring“\n输入要插入的部分块名:”)(if(and(setq dir“c:\\test\\test\\Blocks\”);;更改搜索路径(setq文件(vl目录文件dir(strcat“*”file“*.dwg”)1))(progn(cond((=(length files)1)(命令“_.insert”(strcat(car files)))(while(>(getvar'cmdactive)0)(命令暂停))(>(length files)1)(setq itm 0)(textcr)(foreach n files(print(strcat”“(rtos itm 2 0)”“file”

hmsilva 发表于 2022-7-6 06:41:54

这个代码我很熟悉。
也许是这样的:
(defun c:test(/file dir files itm n fil qt)(setq file(getstring“\n输入要插入的部分块名:”)(if(and(setq dir“c:\\test\\test\\Blocks\”);;更改搜索路径(setq files(vl directory files dir(strcat“*”file“*.dwg”)1))(progn(cond((=(length files)1)(命令“_.insert”(strcat“*”dir(car files))pause“”)(>(length files)1)(setq itm 0)(textcr)(foreach n files(print(strcat”“(rtos itm 2 0)”“file”

legg1979 发表于 2022-7-6 07:03:20

非常好,谢谢。
 
我想这可能是你的代码在第一位看到你的用户名铃声!
 
再次感谢&很抱歉回复太晚,我们暂时休息了一下&只需阅读、应用和测试代码。
现在有另一个问题,但在另一个我一直在写的代码,所以期待一个新的步伐!!

hmsilva 发表于 2022-7-6 07:17:36

不客气。
很高兴我能帮忙。
 
亨里克
页: [1]
查看完整版本: 基于块插入例程