乐筑天下

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

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

[复制链接]

2

主题

9

帖子

7

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 10:14:39 | 显示全部楼层 |阅读模式
嘿,大家好,我有一个简短的问题。如果已经有人问过,我很抱歉,但我自己找不到。我已经搜索了其他地方,但如果帖子没有专门针对你的问题,那就很难了。
 
我的问题是,我们公司有一个LISP程序。从用户那里获得所有信息后,它将以特定的数量在特定的排列中插入一个块。像这样,插入布拉布拉布拉3次向下1英寸的间隔。一切正常,但问题是块必须在图形中,否则例程将失败。如果在块位于图形中时运行它,则运行良好,没有问题。帮助我已经寻找了不同的方法让它插入块,但似乎没有任何组合工作。
 
这是插入积木的线,有什么想法吗?
 
  1. (command "insert" "terminal" (polar #pt1 1.570796327 0.125) "" "" "")
回复

使用道具 举报

51

主题

481

帖子

457

银币

后起之秀

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

铜币
262
发表于 2022-7-6 10:18:27 | 显示全部楼层
据我所知
您有2种解决方案
-创建块本身(作为lisp中的子例程)
-插入块,然后使用lisp
*添加代码以插入块
*使用设计中心
*创建bottun并使用宏
回复

使用道具 举报

2

主题

9

帖子

7

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 10:24:17 | 显示全部楼层
谢谢你的回复,我感谢你的努力。关于你的信息,我有几个简短的问题。
 
如何使用LISP插入块?您是否能够插入块,使用lisp的其余部分,然后删除插入的第一个块,这样您就没有多余的块了。我想这可能是一种选择。
 
至于其余部分,问题是如果图形中没有块,它将无法工作。然而,我希望避免这种情况,并且能够在全新的图形中运行LISP例程,而无需打开现有文件。这有意义吗?
 
我确实喜欢插入块,运行lisp,然后删除块的选项。有没有办法实现自动化?
回复

使用道具 举报

51

主题

481

帖子

457

银币

后起之秀

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

铜币
262
发表于 2022-7-6 10:25:24 | 显示全部楼层
我可以问一下吗
为什么使用lisp插入块
你可以使用宏来实现这一点,它更容易、更好(至少对我来说)
这是我使用的宏
  1. ^C^Cinsunits;4;-insert;C:/Blocks/Block.dwg;\\;0;explode;last;ddedit;last;
  2. [b]insunits;4        [/b] to be sure the unites in both drawings is the same
  3. [b]-insert;[/b]             using insert command
  4. [b]C:/Blocks/Block.dwg;[/b][url="file://;0; %20arrangement/"][b][color=black]\\;0;[/color][/b][/url]       The path and file
  5. [b]explode;last;[/b]    explode the origen file to be able to insert again
  6. [b]ddedit;last;[/b]       edit in case of the block has an attribute
回复

使用道具 举报

2

主题

9

帖子

7

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 10:30:07 | 显示全部楼层
在我工作的公司,我们生产电气设备。我们绘制的图纸中有三分之二涉及电路图和示意图。其中很大一部分是以接线端子的形式存在的。我们有一组8种不同的LISP例程,它们一起很好地发挥作用。第一个是创建一组这样的终端,这样我们就可以工作了。
 
终端几乎是一组盒子,每个盒子包含一个数字。在每一侧放置一个带阴影的圆形,作为连接点,包含我们使用的其余例程的扩展数据信息。
 
示例:您需要2个端子。它创建了2个长方体,1和2,并在每个长方体的侧面放置了4个圆形块。
 
问题:仅当图形中已有块时,才会运行此操作。我需要它将图形作为一个块插入到一个独立的图形中,而不需要以前将它放在那里。
 
通常我们要做的是拿一张旧画,删除我们不需要的东西,然后从那里开始工作。但问题是,如果你想从头开始创建一个全新的图表,你不能。我正在试图找出如何解决这个问题。这有意义吗?
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 10:33:30 | 显示全部楼层
 
 
如果块是搜索路径中的dwg文件,则可以这样定义块表:
  1. (command "insert" "terminal")
  2. (command)

 
 
如果块仅在另一个图形中定义,则替换为主dwg文件名-大卫
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 10:35:46 | 显示全部楼层
 
 
现在这没有意义了。。。。。。。
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 10:39:33 | 显示全部楼层
或者:
  1. (command "insert" "terminal" nil)
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:40:10 | 显示全部楼层
这是我用来“强制”块定义的:
 
  1. ;;---------------=={ Force Block Definition }==---------------;;
  2. ;;                                                            ;;
  3. ;;  Ensures, if possible, that a block definition is present  ;;
  4. ;;  in a drawing.                                             ;;
  5. ;;------------------------------------------------------------;;
  6. ;;  Author: Lee McDonnell, June 2010                          ;;
  7. ;;                                                            ;;
  8. ;;  Copyright © 2010 by Lee McDonnell, All Rights Reserved.   ;;
  9. ;;  Contact: Lee Mac @ TheSwamp.org, CADTutor.net             ;;
  10. ;;------------------------------------------------------------;;
  11. ;;  Arguments:                                                ;;
  12. ;;  block - block name or filename                            ;;
  13. ;;------------------------------------------------------------;;
  14. ;;  Returns:  Block name, else nil                            ;;
  15. ;;------------------------------------------------------------;;
  16. (defun LM:ForceBlockDefinition ( block / path ext base )
  17. ;; © Lee Mac 2010
  18. (setq path  (vl-filename-directory block)
  19.        ext   (vl-filename-extension block)
  20.        base  (vl-filename-base block))
  21. (or ext (setq ext ".dwg"))  
  22. (or (eq "" path) (setq path (strcat path "\")))
  23. (cond
  24.    ( (tblsearch "BLOCK" base) base )
  25.    ( (setq block (findfile (strcat path base ext)))
  26.      (command "_.-insert" block) (command) base
  27.    )
  28. )
  29. )
可以提供块名、带扩展名的块名或完整的块文件名。
回复

使用道具 举报

2

主题

9

帖子

7

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 10:43:22 | 显示全部楼层
如果有人想要完整的Lisp程序,我很乐意发送。有3个文件,它们都保存在AutoCAD的支持目录中。这个lsp。dwg和。dcl。。。。
 
我只是想知道,大卫,有什么没有意义?我包括了一个LISP例程创建的图像,以及我们使用它们的范围的缩小版本。黄点是我试图作为独立块插入的块,而不是已经在图形中的块。
 
重点是,我不能让它插入黄点。虽然这很容易纠正,只需将其中一个复制到绘图中,运行lisp,然后删除它,但我正在寻找一种以自动方式执行此操作的方法。这是为了防止错误,因此如果不知道系统正在使用该程序的人,他们将不必担心细节,他们只需“点击它,然后忘记它”。
 
 
 
111446tejkx2iin0e2s0kv.jpg
 
111449lrjrzxz0cfbp62tp.jpg
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-6 20:58 , Processed in 0.424577 second(s), 74 queries .

© 2020-2025 乐筑天下

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