将块插入到特定点
嘿,大家好,已经有一段时间了,但我回来了,需要一些帮助。我试图找到一个lisp,它将在指定的点层插入指定的块。例子:
在一个名为“tree”的图层上,我有385个树位置点。我想在所有树点上插入一个树块。无需缩放或旋转。我有6000多个不同图层和名称的点,因此nodesert例程无法工作,因为它将块插入到图形中的每个点上。我希望它只插入到指定的层。
有人知道一个可以满足我需要的常规吗?
我希望我有点明白我的意思。
谢谢你的帮助。
内特 如何在图纸中识别这些“树点”? 你有所有的点作为CSV或excel,然后如果有像1121.456789.102,树它很容易,很可能是一个lisp已经存在签出李Mac的导入点例程可以做你想要的。
如果CSV在这里粘贴几行,或者如果excell粘贴为文本,这是一个已经被问了很多次的问题。
也请观看此空间http://www.cadtutor.net/forum/showthread.php?67934-需要lisp从坐标绘制圆/page3
这将帮助你获得385分
(defun c:test (/ found ss i sn)
(if (and (setq found (tblsearch "BLOCK" "TREE"))
(setq ss (ssget "_:L" '((0 . "POINT") (8 . "TREE"))))
)
(repeat (setq i (sslength ss))
(setq sn (ssname ss (setq i (1- i))))
(entmake (list '(0 . "INSERT")
'(2 . "TREE")
(assoc 10 (entget sn))
'(41 . 1.0)
'(42 . 1.0)
'(43 . 1.0)
'(50 . 0.)
)
)
)
(cond ((not found) (alert " Block < TREE > not found ! "))
(t
(alert " Please select points on TREE layer ...")
)
)
)
(princ)
)
那么,在不同图层上的6000个点上插入的块的名称是什么? 那么,您已经在图形上获得了点(其中6000个),但您只想将块放置在指定图层上的这些点上?您是否考虑过隔离该层(LAYISO命令)。那么像这样的事情可能会有所帮助:
如果要查看所有层,则过滤器可能会有所帮助。尝试使用Filter命令,甚至QSelect,仅选择一个或多个指定图层上的点,然后运行上面的lisp。
或者修改lisp,将此类过滤器添加到其ssget调用中,如下所示:
(ssget (list '(0 . "POINT") (cons 8 "LayerName"))) 点或节点。x、 在被外部参照之前移除z坐标的y、z坐标。
它们不是作为csv生成的。它们被导出到。来自a的dxf。然后插入分解块。(从公制到英制是获得正确单位和比例的唯一方法。说来话长……)
他们都不一样。其中约有1000个是卫生、暴雨和入口格栅块,其中大多数是连接路缘和人行道的点。
非常感谢你们的回复。我现在要测试一下,看看它们是否对我正在尝试的工作有效。 尚未正确阅读整个线程,但这可能会帮助您:
http://lee-mac.com/ptmanager.html
我的第一个想法是关闭并冻结除“树”层之外的所有层,这基本上与隔离层相同,我相信,如果我错了,请纠正我的错误,然后使用nodesert lisp,但它仍然可以看到所有点,并在图形中的所有点上放置一个树块,即使它们已关闭并冻结。
使用快速选择是一个优秀的工具,我可以选择所有的树点,但我还没有找到正确的组合,只在树点上插入块。花几个小时制定一个适用于这种情况的例程可以节省我反复插入同一块的大量时间,因此我会继续体验,直到找到答案。Lisp程序的张贴到目前为止是隔离它到我的“树块”。有没有办法让我选择块和层???
很好的例行李Mac。这正是我需要的。
1、快速选择全部385个树点
2.ptm enter调用lisp例程
3.单击>>输入类型以选择所有选定点
4、选择块
5.单击“确定”
繁荣
非常感谢。。。。
非常欢迎toberino
这个程序实际上是我的老程序之一,源代码可能需要彻底修改,但我很高兴这些年后它仍然很有用。
页:
[1]
2