王与韩1 发表于 2014-8-3 10:26:34

能否实现框选图元变为外部参照

RT,能不能实现像使用WBLOCK一样用将图元变为外部参照呢,最好能选择使用覆盖或者附加的方式,先谢谢各位了

尘缘一生 发表于 2019-5-20 09:09:17

顶起来,希望有这个代码。。。。。。。。。

sniper1111 发表于 2021-10-29 14:15:13

还需要吗,最近我在搞,小有成效

wzg356 发表于 2021-10-29 15:52:18

;ss-选择集或图元名表
;p-插入点
;blk-块名字符串,如为nil则创建无名快
(defun EntmakeBlock (ss p blk / e n dxf)
(if(not(listp ss))
(setq ss(vl-remove-if '(lambda(x)(/= (type x) 'ENAME))(mapcar 'cadr(ssnamex ss))))
)
(entmake(list '(0 . "block")(cons 2(if blk blk "*U"))(cons 70(if blk 0 1))(cons 10 p)))
(foreach e ss(setq dxf(entget e))(cond(dxf(entmake(cdr dxf))(entdel e))))
(setq blk(entmake '((0 . "ENDBLK"))))
(entmake(list '(0 . "INSERT")(cons 2 blk)(cons 10 p)))
)

昊翰鲲鹏 发表于 2021-11-18 10:27:23

sniper1111 发表于 2021-10-29 14:15
还需要吗,最近我在搞,小有成效

大佬搞好了吗

sniper1111 发表于 2021-11-18 11:36:29

昊翰鲲鹏 发表于 2021-11-18 10:27
大佬搞好了吗

是这样的,但是还有不少问题

sniper1111 发表于 2021-11-18 11:40:19

本帖最后由 sniper1111 于 2021-11-18 11:42 编辑

;;;做块写出快,返参程序
;;;引用样式(block_xref (ss选择集 pt基点 name 块名 La 返参放置图层 path路径 XREF_N是否返参"0"或"1" XREF_T附着"A"或覆盖"O")
;;;路径例如:"C:\\Users\\曲银德\\Desktop\\XREF"
(defun block_xref (ss pt name La path XREF_N XREF_T)
(if (/= ss nil)
   (progn
         (command "_.block" name "non" pt ss "")
         (setq fn (strcat path (chr 92) name))
         (if (findfile (strcat fn ".dwg"))
             (command "_.WBLOCK" fn "_Y" name)
             (command "_.WBLOCK" fn name)
         )
         (command "_PURGE" "B" name "Y" "Y")
         (if (= XREF_N "0")
             (progn
               (command "-xref" XREF_T fn pt "1" "1" "0")
               (command "Chprop" (entlast) "" "LA" La "")
             )
         )
   )
)

)

昊翰鲲鹏 发表于 2022-2-16 14:49:39

sniper1111 发表于 2021-11-18 11:40
;;;做块写出快,返参程序
;;;引用样式(block_xref (ss选择集 pt基点 name 块名 La 返参放置图层 path路径 ...

我觉得可以实现根据拾取图层写块到指定文件夹并且不改变位置就已经很不错了回插参照比较省事   大佬是沈阳的吗

sniper1111 发表于 2022-2-17 01:05:47

昊翰鲲鹏 发表于 2022-2-16 14:49
我觉得可以实现根据拾取图层写块到指定文件夹并且不改变位置就已经很不错了回插参照比较省事   大 ...

是的在沈阳。
页: [1]
查看完整版本: 能否实现框选图元变为外部参照