明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 8264|回复: 16

[求助]批量修改圆的直径!

  [复制链接]
发表于 2008-11-5 11:32 | 显示全部楼层 |阅读模式
求高手帮忙编一lisp 能批量修改0层不同的直径
发表于 2020-5-6 14:47 | 显示全部楼层
这个其实不能按层选,得按孔径选择才行,万一好多孔径的都在一个层的呢
 楼主| 发表于 2008-11-5 16:57 | 显示全部楼层

比如0层下有0.8、0.9、1.0等圆孔,我要输入一个命令,在命令行提示旧圆多大,输入要改的尺寸,不改就回车

发表于 2008-11-7 21:39 | 显示全部楼层
本帖最后由 ljttjl 于 2011-9-17 22:57 编辑

autocad本身就可以实现,filter过滤器命令批量选择相同的圆后,用属性修改管理就可以修改
发表于 2008-11-9 10:57 | 显示全部楼层
本帖最后由 作者 于 2008-11-15 12:15:57 编辑

再试试看
游客,本帖隐藏的内容需要发帖数高于 5 才可浏览,你当前发帖数只有 0

 楼主| 发表于 2008-11-9 16:59 | 显示全部楼层

ZZXXQQ大哥,程式出错:

命令: tt
Select Circle(s) 选择圆:
选择对象: 指定对角点: 找到 2 个

选择对象:
选择对象:  ; 错误: 参数类型错误: numberp: nil

能不能让程式自动选择0层?

(setq ss (ssget "X" '((0 . "CIRCLE")(8 . "0"))))

发表于 2008-11-9 20:22 | 显示全部楼层
4楼已改
 楼主| 发表于 2008-11-10 11:05 | 显示全部楼层
程式还有一个问题不够完善:当某一种孔径不用改时,直接回车的话有多少个圆就要按多少次,麻烦~
命令: tt
请输入0层此种孔的新直径 <1.0000> :
请输入0层此种孔的新直径 <1.0000> :
请输入0层此种孔的新直径 <1.0000> :
请输入0层此种孔的新直径 <1.0000> :
请输入0层此种孔的新直径 <2.0000> :3
  1. ;提示改变圆的直径 明经 ZZXXQQ
  2. (defun c:tt ()
  3.   (if (and ;(princ "\nSelect Circle(s) 选择圆:")
  4.            (setq ss (ssget "X" '((0 . "CIRCLE")(8 . "0")))))
  5.   (progn
  6.    (setq i 0 clst (list))
  7.    (repeat (sslength ss)
  8.     (setq en (ssname ss i)
  9.              ent (entget en)
  10.              r1 (assoc 40 ent)
  11.              i (1+ i))
  12.     (if (not (member (cdr r1) clst)) (progn
  13.      (setq ss1 (ssget "X" (list '(0 . "CIRCLE") r1)))
  14.      (setq r (assoc 40 ent))
  15.      (setq newd (getdist (strcat "\n请输入0层此种孔的新直径 <" (rtos (* (cdr r) 2) 2 4) "> :")))
  16.      (if newd (progn
  17.       (setq j 0)
  18.       (setq r (/ newd 2))
  19.       (setq clst (cons r clst))
  20.       (repeat (sslength ss1)
  21.        (setq ent1 (entget(ssname ss1 j))
  22.                ent1 (subst (cons 40 r) (assoc 40 ent1) ent1)
  23.                j (1+ j))
  24.        (entmod ent1)
  25.       )
  26.      ))
  27.     ))
  28.    )
  29.   ))
  30.   (princ)
  31. (alert (strcat "0 层的孔已配完"))
  32. )
发表于 2008-11-15 12:17 | 显示全部楼层
4楼又改了
 楼主| 发表于 2008-11-15 15:57 | 显示全部楼层

又有新问题,如选择集中有1.0、1.1、1.2、1.3的圆,当把1.0的改为1.2时,接着就到1.1 、1.3了,1.2的就不能修改了。ZZXXQQ大哥这个问题如何解决。

发表于 2008-11-16 13:19 | 显示全部楼层

程序只能区分相同直径的圆。如果想要那么改,只能将1.2的圆改成别的直径再改1.1的圆。

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

本版积分规则

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

GMT+8, 2024-4-26 18:59 , Processed in 0.236652 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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