明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2695|回复: 12

[求助]那位大侠有块替换功能的程序

  [复制链接]
发表于 2008-6-12 23:34 | 显示全部楼层 |阅读模式
最好是有择性指定两个块名之间替换,只框一次就能将图档内一个块替成另一个块.
发表于 2008-6-16 09:24 | 显示全部楼层

用学院派工具箱可以实现。

发表于 2008-6-16 14:13 | 显示全部楼层
半年前经MJTD高人指点的程序,希望对你有点用。当时没能记录下是哪位高人指点的,在此致歉。
  1. ;本程序经MJTD高人指点,非自己独立编写,转载请保留本行!!------dinosaurhxe@MJTD
  2. ;换块,2007.12.5
  3. (defun c:hk (/ oom km1 km2 xzgl ss bn name)
  4.   (setq oom (getvar "osmode"))
  5.   (setvar "osmode" 0)
  6.   (defun dkm (/ pit)
  7.     (setq pit nil)
  8.     (while (/= (type pit) 'STR)
  9.       (initget 128)
  10.       (setq pit (getpoint "输入块名或选择实体读取块名:"))
  11.       (cond
  12. ((and (= 'LIST (type pit)) (setq ss (ssget pit)))
  13.   (setq pit (get 2 (entget (ssname ss 0))))
  14. )
  15. ((= (type pit) 'STR) nil)
  16.       )
  17.     )
  18.     pit
  19.   )
  20.   (prompt "\n请输入源块块名,")
  21.   (setq km2 (strcase (dkm)))
  22.   (prompt "\n请输入目标块的块名,")
  23.   (setq km1 (strcase (dkm)))
  24.   (setq xzgl (list '(0 . "INSERT") (cons 2 km1)))
  25.   (while (setq ss (ssget xzgl))
  26.     (mapcar '(lambda (x / bn)
  27.         (setq x (vlax-ename->vla-object x)
  28.        bn (strcase (vlax-get-property x 'name))
  29.         )
  30.         (vlax-put-property x 'name km2)
  31.       )
  32.      (lt:ss->list ss)
  33.     )
  34.   )
  35.   (setvar "osmode" oom)
  36. )
  37. (defun lt:ss->list (ss / en)
  38.   (vl-remove nil
  39.       (mapcar '(lambda (x)
  40.    (if (= (type (setq en (cadr x))) 'ename)
  41.      en
  42.    )
  43.         )
  44.        (ssnamex ss)
  45.       )
  46.   )
  47. )
 楼主| 发表于 2008-6-17 21:03 | 显示全部楼层
先谢谢你的无私奉献
发表于 2008-6-17 23:45 | 显示全部楼层

块是换了,但步骤比较麻烦,特别是匿名块,比较有用的lsp,希望那位高手修改一下,要是先能选择源块,不需要输入块名默认支持实体选择(支持框选)然后选择目标块便能更改就好了(支持框选),恳请高手们修改!!!!!!!!!

发表于 2008-6-18 09:16 | 显示全部楼层

试试我这个,但请恕不提供源码。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2008-6-19 19:59 | 显示全部楼层
6楼的试过了比3楼的好多了但是替换时没有选择性,本想两个块之替换,框选图档内的不同名块都被替换了.框选时能否只替换指定一个块而其它块不被替掉.期望更多高手出现.
发表于 2008-6-19 21:55 | 显示全部楼层
这你就得把要求写清楚了,两个块,怎么替换。最好把步骤写一下。
 楼主| 发表于 2008-6-20 19:46 | 显示全部楼层
一幅零件图内有不同名块A,B,C,D,E........框选时只想A替换B而其它C,D,E等块即使被框选到都不会被替掉,请问英雄无敌大侠能否实现这功能呢.
发表于 2008-6-20 19:57 | 显示全部楼层

个人觉得3楼的程序也支持选取读块名而不是非得输入块名啊?

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

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-4-29 01:41 , Processed in 0.485604 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表