asos2000 发表于 2022-7-6 10:46:30

你能上传这些Lisp程序吗
并将这些块包含在lisp中,然后再次为您上传。

Agent 31 发表于 2022-7-6 10:51:28

以下是3个文件(XBlock.lsp、ddxblock.dcl、terminal.dwg)。正如我提到的,我将它们都保存在支持目录中。
 
在你把一切都安排好之后,有几件事要记住。名称是任意的。出于所有目的,请将其保留为“CC”。你可以把它命名为ABCDEFGHIJK。。。。。如果你这样选择,但这并不重要。默认起点为1,只需输入2作为终点。同样,只要终点高于起点,这是任意的。1-10、11-12、22-99,都无关紧要。
 
要查看我的问题,请打开文件“terminal.dwg”,运行LISP和VIOLA!现在打开一个空白图形并尝试。祝你好运
 
我还不习惯这些论坛,因为在我还是一个新手海报,所以让我知道如果这不上传。
 
干杯
XBLOCK。LSP
终端。图纸
ddxblock。dcl

Lee Mac 发表于 2022-7-6 10:54:13

嗨,代理,
 
使现有代码工作的快速方法是确保其使用的所有块(即Terminal.dwg)都位于AutoCAD支持路径中。
 
可以通过在命令行键入“Options”,然后转到“Files”选项卡来找到支持路径。
 

Agent 31 发表于 2022-7-6 10:58:01

谢谢你,李,但是他们。。。请参阅我上一篇文章的第一行。。。

Lee Mac 发表于 2022-7-6 10:59:06

嗨,代理,
 
我看了一下你发布的代码,并重写了它,希望能为你提供更强大的功能(它也应该运行得更快)。
 
如果你有任何问题,请告诉我。
 

xblock LM。lsp
ddxblock LM。dcl

Se7en 发表于 2022-7-6 11:05:16

李,如果找不到障碍物,我相信你的常规动作会摇摆不定。
 
当我不打算在我的例程中进行用户交互(允许用户选择文件夹、文件等)时(即使这样,我在大多数情况下也会考虑过度杀戮,即我通常会尽可能快地使例程失败。如下面最后一个示例所示)。然而,当我设计一个用于用户交互的应用程序时,你可以指望至少还有100行左右,只是为了让它有点防爆。
 
(defun blockp ( bn )
;;   
;; blockp
;; return ``location'' for a block search.
;;
;; if block is in dwg. returns ``dwg''
;; if block is found in paths returns
;;    ``path to dwg''
;; if not found, returns ``nil''
(cond
    ((tblsearch "BLOCK" bn) 'dwg)
    ((findfile (strcat bn ".dwg")))) )
 
( (lambda ( block-to-insert file-to-get-block-from )
    (cond
      ( (or
          (tblsearch "BLOCK" block-to-insert)
          (ObjectDBX-copyblockfromdrawing file-to-get-block-from block-to-insert)
          )
       (command "insert" block-to-insert PAUSE "" "")
       (while (eq (logand (getvar "CMDACTIVE")) 1)
       (command PAUSE))
       )
      ( T
         (princ "\n\nUnable to locate block"))))
"BlockThatDoesntExistInDrawing"
"c:\\Drawing.dwg")

Se7en 发表于 2022-7-6 11:06:57

*哇,你们在我打字的时候又在我身上加了几个帖子(或者我没有看到第二页)(^^)。。。对不起,如果我现在断章取义。

Lee Mac 发表于 2022-7-6 11:09:51

 
不用担心,你是对的-我之前发布的函数中有一个拼写错误,我假设vl filename extension返回“”表示无扩展(就像vl filename directory返回无目录一样),但实际上它返回零。
 
代码已更新。
 

Grant 发表于 2022-7-6 11:14:24

我假设块不在Autocad搜索路径中,因此无法找到它。
 
我认为您需要做的就是将块写入Autocad搜索路径(或在选项、文件选项卡、搜索文件支持路径中创建自己的块)。这将使autocad搜索您的图形,如果在那里找不到,则应在autocad和您可以创建的搜索路径中查找。
 
希望这有帮助

Agent 31 发表于 2022-7-6 11:16:06

谢谢大家的帮助。我一天的大部分时间都不在,为了工作,我会做一些其他的图表。我只是想让你知道我已经收到了所有的东西。不过,我有一个简单的问题,我应该把其他代码放到李的代码里吗?只是好奇。
 
但是我今天会试着去试一下,我会回复的。
 
再次感谢您的帮助,我稍后会与大家见面!
页: 1 [2]
查看完整版本: 插入来自另一fil的块