插入来自另一fil的块
嘿,大家好,我有一个简短的问题。如果已经有人问过,我很抱歉,但我自己找不到。我已经搜索了其他地方,但如果帖子没有专门针对你的问题,那就很难了。我的问题是,我们公司有一个LISP程序。从用户那里获得所有信息后,它将以特定的数量在特定的排列中插入一个块。像这样,插入布拉布拉布拉3次向下1英寸的间隔。一切正常,但问题是块必须在图形中,否则例程将失败。如果在块位于图形中时运行它,则运行良好,没有问题。帮助我已经寻找了不同的方法让它插入块,但似乎没有任何组合工作。
这是插入积木的线,有什么想法吗?
(command "insert" "terminal" (polar #pt1 1.570796327 0.125) "" "" "") 据我所知
您有2种解决方案
-创建块本身(作为lisp中的子例程)
-插入块,然后使用lisp
*添加代码以插入块
*使用设计中心
*创建bottun并使用宏 谢谢你的回复,我感谢你的努力。关于你的信息,我有几个简短的问题。
如何使用LISP插入块?您是否能够插入块,使用lisp的其余部分,然后删除插入的第一个块,这样您就没有多余的块了。我想这可能是一种选择。
至于其余部分,问题是如果图形中没有块,它将无法工作。然而,我希望避免这种情况,并且能够在全新的图形中运行LISP例程,而无需打开现有文件。这有意义吗?
我确实喜欢插入块,运行lisp,然后删除块的选项。有没有办法实现自动化? 我可以问一下吗
为什么使用lisp插入块
你可以使用宏来实现这一点,它更容易、更好(至少对我来说)
这是我使用的宏
^C^Cinsunits;4;-insert;C:/Blocks/Block.dwg;\\;0;explode;last;ddedit;last;
insunits;4 to be sure the unites in both drawings is the same
-insert; using insert command
C:/Blocks/Block.dwg;\\;0; The path and file
explode;last; explode the origen file to be able to insert again
ddedit;last; edit in case of the block has an attribute
在我工作的公司,我们生产电气设备。我们绘制的图纸中有三分之二涉及电路图和示意图。其中很大一部分是以接线端子的形式存在的。我们有一组8种不同的LISP例程,它们一起很好地发挥作用。第一个是创建一组这样的终端,这样我们就可以工作了。
终端几乎是一组盒子,每个盒子包含一个数字。在每一侧放置一个带阴影的圆形,作为连接点,包含我们使用的其余例程的扩展数据信息。
示例:您需要2个端子。它创建了2个长方体,1和2,并在每个长方体的侧面放置了4个圆形块。
问题:仅当图形中已有块时,才会运行此操作。我需要它将图形作为一个块插入到一个独立的图形中,而不需要以前将它放在那里。
通常我们要做的是拿一张旧画,删除我们不需要的东西,然后从那里开始工作。但问题是,如果你想从头开始创建一个全新的图表,你不能。我正在试图找出如何解决这个问题。这有意义吗?
如果块是搜索路径中的dwg文件,则可以这样定义块表:
(command "insert" "terminal")
(command)
如果块仅在另一个图形中定义,则替换为主dwg文件名-大卫
现在这没有意义了。。。。。。。 或者:
(command "insert" "terminal" nil) 这是我用来“强制”块定义的:
;;---------------=={ Force Block Definition }==---------------;;
;; ;;
;;Ensures, if possible, that a block definition is present;;
;;in a drawing. ;;
;;------------------------------------------------------------;;
;;Author: Lee McDonnell, June 2010 ;;
;; ;;
;;Copyright © 2010 by Lee McDonnell, All Rights Reserved. ;;
;;Contact: Lee Mac @ TheSwamp.org, CADTutor.net ;;
;;------------------------------------------------------------;;
;;Arguments: ;;
;;block - block name or filename ;;
;;------------------------------------------------------------;;
;;Returns:Block name, else nil ;;
;;------------------------------------------------------------;;
(defun LM:ForceBlockDefinition ( block / path ext base )
;; © Lee Mac 2010
(setq path(vl-filename-directory block)
ext (vl-filename-extension block)
base(vl-filename-base block))
(or ext (setq ext ".dwg"))
(or (eq "" path) (setq path (strcat path "\\")))
(cond
( (tblsearch "BLOCK" base) base )
( (setq block (findfile (strcat path base ext)))
(command "_.-insert" block) (command) base
)
)
)可以提供块名、带扩展名的块名或完整的块文件名。 如果有人想要完整的Lisp程序,我很乐意发送。有3个文件,它们都保存在AutoCAD的支持目录中。这个lsp。dwg和。dcl。。。。
我只是想知道,大卫,有什么没有意义?我包括了一个LISP例程创建的图像,以及我们使用它们的范围的缩小版本。黄点是我试图作为独立块插入的块,而不是已经在图形中的块。
重点是,我不能让它插入黄点。虽然这很容易纠正,只需将其中一个复制到绘图中,运行lisp,然后删除它,但我正在寻找一种以自动方式执行此操作的方法。这是为了防止错误,因此如果不知道系统正在使用该程序的人,他们将不必担心细节,他们只需“点击它,然后忘记它”。
页:
[1]
2