乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
楼主: Agent 31

[编程交流] 插入来自另一fil的块

[复制链接]

51

主题

481

帖子

457

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
262
发表于 2022-7-6 10:46:30 | 显示全部楼层
你能上传这些Lisp程序吗
并将这些块包含在lisp中,然后再次为您上传。
回复

使用道具 举报

2

主题

9

帖子

7

银币

初来乍到

Rank: 1

铜币
10
发表于 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
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:54:13 | 显示全部楼层
嗨,代理,
 
使现有代码工作的快速方法是确保其使用的所有块(即Terminal.dwg)都位于AutoCAD支持路径中。
 
可以通过在命令行键入“Options”,然后转到“Files”选项卡来找到支持路径。
 
回复

使用道具 举报

2

主题

9

帖子

7

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 10:58:01 | 显示全部楼层
谢谢你,李,但是他们。。。请参阅我上一篇文章的第一行。。。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:59:06 | 显示全部楼层
嗨,代理,
 
我看了一下你发布的代码,并重写了它,希望能为你提供更强大的功能(它也应该运行得更快)。
 
如果你有任何问题,请告诉我。
 

xblock LM。lsp
ddxblock LM。dcl
回复

使用道具 举报

2

主题

182

帖子

180

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 11:05:16 | 显示全部楼层
李,如果找不到障碍物,我相信你的常规动作会摇摆不定。
 
当我不打算在我的例程中进行用户交互(允许用户选择文件夹、文件等)时(即使这样,我在大多数情况下也会考虑过度杀戮,即我通常会尽可能快地使例程失败。如下面最后一个示例所示)。然而,当我设计一个用于用户交互的应用程序时,你可以指望至少还有100行左右,只是为了让它有点防爆。
 
  1. (defun blockp ( bn )
  2. ;;   
  3. ;; blockp
  4. ;; return ``location'' for a block search.
  5. ;;
  6. ;; if block is in dwg. returns ``dwg''
  7. ;; if block is found in paths returns
  8. ;;    ``path to dwg''
  9. ;; if not found, returns ``nil''
  10.   (cond
  11.     ((tblsearch "BLOCK" bn) 'dwg)
  12.     ((findfile (strcat bn ".dwg")))) )

 
  1. ( (lambda ( block-to-insert file-to-get-block-from )
  2.     (cond
  3.       ( (or
  4.           (tblsearch "BLOCK" block-to-insert)
  5.           (ObjectDBX-copyblockfromdrawing file-to-get-block-from block-to-insert)
  6.           )
  7.        (command "insert" block-to-insert PAUSE "" "")
  8.        (while (eq (logand (getvar "CMDACTIVE")) 1)
  9.          (command PAUSE))
  10.        )
  11.       ( T
  12.          (princ "\n\nUnable to locate block"))))
  13.   "BlockThatDoesntExistInDrawing"
  14.   "c:\\Drawing.dwg")
回复

使用道具 举报

2

主题

182

帖子

180

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 11:06:57 | 显示全部楼层
*哇,你们在我打字的时候又在我身上加了几个帖子(或者我没有看到第二页)(^^)。。。对不起,如果我现在断章取义。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:09:51 | 显示全部楼层
 
不用担心,你是对的-我之前发布的函数中有一个拼写错误,我假设vl filename extension返回“”表示无扩展(就像vl filename directory返回无目录一样),但实际上它返回零。
 
代码已更新。
 
回复

使用道具 举报

3

主题

61

帖子

58

银币

初来乍到

Rank: 1

铜币
16
发表于 2022-7-6 11:14:24 | 显示全部楼层
我假设块不在Autocad搜索路径中,因此无法找到它。
 
我认为您需要做的就是将块写入Autocad搜索路径(或在选项、文件选项卡、搜索文件支持路径中创建自己的块)。这将使autocad搜索您的图形,如果在那里找不到,则应在autocad和您可以创建的搜索路径中查找。
 
希望这有帮助
回复

使用道具 举报

2

主题

9

帖子

7

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 11:16:06 | 显示全部楼层
谢谢大家的帮助。我一天的大部分时间都不在,为了工作,我会做一些其他的图表。我只是想让你知道我已经收到了所有的东西。不过,我有一个简单的问题,我应该把其他代码放到李的代码里吗?只是好奇。
 
但是我今天会试着去试一下,我会回复的。
 
再次感谢您的帮助,我稍后会与大家见面!
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-6 21:10 , Processed in 0.779353 second(s), 70 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表