caxtin 发表于 2022-7-6 06:41:13

插入块的简单Lisp

在过去的三个半小时里,我一直在搜索、查找、尝试、修改lisps,但仍然没有成功。现在我需要帮助!
-我有这个文件,EDL。图纸“位于”L:/AutoCAD/Template/EDL。图纸”。
-我在个人工具栏中创建了一个按钮。
目标:
1.选择创建的工具栏按钮,
2.选择所需的插入点,
3、就这样!在#2级之后,函数退出并返回到之前的位置。
提前感谢

Lee Mac 发表于 2022-7-6 06:51:07

欢迎来到CADTutor caxtin
 
下面是一个非常简单的示例:
(defun c:myinsert ( / att blk )
   (if (setq blk (findfile "L:/AutoCAD/Template/EDL.dwg"))
       (progn
         (setq att (getvar 'attreq))
         (setvar 'attreq 0)
         (while (vl-cmdf "_.-insert" blk "_S" 1.0 "_R" 0.0 "\\"))
         (setvar 'attreq att)
       )
       (princ "\nEDL.dwg not found.")
   )
   (princ)
)

caxtin 发表于 2022-7-6 06:54:49

 
谢谢你的代码。
只是一件小事。运行代码并选择插入点后,块仍然挂着,让我将其重新插入到另一个位置。我希望代码在选择第一个插入点后终止/转义。
谢谢你抽出时间来,我当然很感激。

Lee Mac 发表于 2022-7-6 07:05:33

 
通过使用while循环,当前代码将持续提示块插入点,直到用户按Esc退出程序(虽然不太优雅,但我确实说过程序很简单);对于单个插入,只需删除while表达式,例如:
 
请注意,上述操作还禁用了块插入期间的属性提示,并使用1.0的固定比例和0.0的旋转。
 
 
不客气。

caxtin 发表于 2022-7-6 07:14:11

是的,缩放和旋转对于这个块来说不是问题,所以在这方面,我很好。
如果我能在第一次插入后让它逃逸,那一定很棒。插入块后,块仍会挂起以进行另一次插入。
 
刚刚意识到,当我打开一个现有文件(DWG)并调用代码时,它说_EDL Unknown command“EDL”
但对于一个新文件,代码可以正常工作。
 
在我的搜索路径(L:/AutoCAD/Template)中,我有EDL。DWG文件。
在我的工具栏按钮中,我的命令是^C^C\u EDL。
此外,我还有EDL。我的崔的LISP文件夹中的LSP。
 
很抱歉在这件事上打扰了你。
谢谢

Lee Mac 发表于 2022-7-6 07:16:08

 
你确定你正在加载并运行上面发布的更新代码吗?(答复#4)
 
 
评估发布程序的命令是“myinsert”;通常,在AutoCAD命令行中计算程序的命令是紧跟在defun表达式中“c:”之后的字符串。
 
 
如何将AutoLISP(.lsp)文件加载到绘图任务中?
AppLoad/Startup Suite/ACADDOC/MNL?

welldriller 发表于 2022-7-6 07:23:46

不熟悉AutoCad 2013,但您不能单击“插入块”按钮,选择要插入的块,选择要插入的位置,然后单击“回车”完成该过程吗?
 
注意:我假设您已经制作了块。

caxtin 发表于 2022-7-6 07:27:54

 
引用的部分是我试图避免的。
-转到“菜单”,找到“插入”
-转到文件夹,搜索子文件夹,然后搜索子文件夹
-搜索文件(如果文件以我必须翻页的字母开头,那么我会重新开始查找文件等
-处理插入对话框
你不觉得在我的工具条上点击一个图标按钮,选择intertion点会更好吗?就像一站式购物一样。对不起,我现在很懒。

caxtin 发表于 2022-7-6 07:36:55

 
首先也是最重要的一点是,该代码与我应该使用的代码(第4篇文章)配合得很好。谢谢你。
我将“myinsert”更改为我想要使用的,它工作得很好。我将其重命名为“defun c:edl”,所有操作都与代码进行得很好。
第三部分是我需要更改AutoCAD实践的地方。我不使用ACADDOC文件;到现在为止,我应该正在使用它。我会努力做到这一点,让它正常工作。但是你已经完成了我需要帮助的部分,我非常感激。这会减少我很多工作时间。
再次感谢。

Lee Mac 发表于 2022-7-6 07:43:04

非常欢迎caxtin,我很高兴该程序按要求运行。
关于阿卡多克的使用(和误用),这里有几个帖子。lsp,但如果您不确定如何继续,请询问。
 
然而,对于您的任务,我强烈建议您考虑使用工具选项板。在我看来,工具选项板对于任何块库都是绝对理想的:您可以有多个选项板选项卡,每个选项卡具有指定的块类别,在每个选项板中,块可以全部来自单个“模板”图形,也可以分别来自位于任何位置的多个图形。
 
每个按钮还包括要插入的块的自动生成图像,此外,您可以设置要插入的块的比例、旋转、颜色、图层、线型、打印样式、透明度和线宽特性,所有设置在插入时自动应用于块参照(必要时自动创建必要的图层)。
 
移植也很顺利,因为可以在AutoCAD环境之间轻松导出和导入工具选项板。
 
所有这些功能都是内置的,在大多数版本的AutoCAD中都可用(因此是兼容的),无需任何自定义编程。
页: [1]
查看完整版本: 插入块的简单Lisp