明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 901|回复: 8

求助,加载错误

[复制链接]
发表于 2023-6-29 21:53:20 | 显示全部楼层 |阅读模式
本帖最后由 zwq8629 于 2023-6-30 08:12 编辑

(defun C:PJ (/ ss n s1)
  (prompt "\n选择 : ")
  (setq        ss  (ssget '((0 . "CIRCLE")))
        rad (getreal "请输入新的半径 : ")
        n   -1
  )
  (if (/= ss nil)
    (progn
      (repeat (sslength ss)
              (setq s1 (ssname ss (setq n (1+ n))))
              (sub_upd s1 40 rad)
      )
    )
  )
  (princ)
)
;用新值替换旧值(对象、群码、新值)
(defun sub_upd (ename code newvalue)
  (entmod (subst (cons code newvalue) (assoc code (entget ename))(entget ename)))(新半径子列表、原半径子列表、对象属性列表)
  (entupd ename)
)

(prompt "\n ***** <PJ> ***** 更新圆半径")
(princ)




能不能改成先输入孔径,然后再改圆大小


发表于 2023-6-30 11:22:11 | 显示全部楼层
zwq8629 发表于 2023-6-30 08:11
能不能改成先输入孔径,然后再改圆大小

  (setq   ss  (ssget '((0 . "CIRCLE")))
    rad (getreal "请输入新的半径 : ")
    n   -1
  )

改成
  (setq    rad (getreal "请输入新的半径 : ")
             ss  (ssget '((0 . "CIRCLE")))   
    n   -1
  )
回复 支持 1 反对 0

使用道具 举报

发表于 2023-6-29 22:48:38 | 显示全部楼层
  1. (defun C:PJ (/ ss n s1)
  2.   (prompt "\n选择 : ")
  3.   (setq   ss  (ssget '((0 . "CIRCLE")))
  4.     rad (getreal "请输入新的半径 : ")
  5.     n   -1
  6.   )
  7.   (if (/= ss nil)
  8.     (progn
  9.       (repeat (sslength ss)
  10.         (setq s1 (ssname ss (setq n (1+ n))))
  11.         (sub_upd s1 40 rad)
  12.       )
  13.     )
  14.   )
  15.   (princ)
  16. )
  17. ;用新值替换旧值(对象、群码、新值)
  18. (defun sub_upd (ename code newvalue)
  19.   (entmod (subst (cons code newvalue) (assoc code (entget ename))(entget ename)));(新半径子列表、原半径子列表、对象属性列表)
  20.   (entupd ename)
  21. )

  22. (prompt "\n ***** <PJ> ***** 更新圆半径")
  23. (princ)
 楼主| 发表于 2023-6-30 08:11:40 | 显示全部楼层

能不能改成先输入孔径,然后再改圆大小
发表于 2023-6-30 10:51:23 | 显示全部楼层

修改成直径,要动哪个字符?
发表于 2023-6-30 11:08:43 | 显示全部楼层
水洗可口可乐 发表于 2023-6-30 10:51
修改成直径,要动哪个字符?

前面输直径的话,把下面这行改一下就行。
(sub_upd s1 40 rad)---》(sub_upd s1 40 (* rad 0.5))

评分

参与人数 1明经币 +1 收起 理由
水洗可口可乐 + 1 感谢

查看全部评分

发表于 2023-6-30 11:12:48 | 显示全部楼层
andyding 发表于 2023-6-30 11:08
前面输直径的话,把下面这行改一下就行。
(sub_upd s1 40 rad)---》(sub_upd s1 40 (* rad 0.5))

修改成了,谢谢你
 楼主| 发表于 2023-6-30 18:13:30 | 显示全部楼层
andyding 发表于 2023-6-30 11:22
(setq   ss  (ssget '((0 . "CIRCLE")))
    rad (getreal "请输入新的半径 : ")
    n   -1

谢谢

如果要输入直径后,点一个圆改一个圆(不要框选后一起改)要改哪里?
发表于 2023-6-30 20:41:02 | 显示全部楼层
zwq8629 发表于 2023-6-30 18:13
谢谢

如果要输入直径后,点一个圆改一个圆(不要框选后一起改)要改哪里?
  1. (defun C:PJ (/ ss n s1 rad)
  2.   (setq rad (getreal "\n请输入新的半径 : "))
  3.   (while (setq ss (ssget '((0 . "CIRCLE"))))
  4.     (setq n 0)
  5.     (repeat (sslength ss)
  6.       (setq s1 (ssname ss n))
  7.       (sub_upd s1 40 rad)
  8.       (setq n (1+ n))
  9.     )
  10.   )
  11.   (princ)
  12. )

  13. ;;;用新值替换旧值(对象、群码、新值)
  14. (defun sub_upd (ename code newvalue)
  15.   (entmod (subst (cons code newvalue)
  16.                  (assoc code (entget ename))
  17.                  (entget ename)
  18.           )
  19.   );;;(新半径子列表、原半径子列表、对象属性列表)
  20.   (entupd ename)
  21. )
  22. (prompt "\n ***** <PJ> ***** 更新圆半径")
  23. (princ)

评分

参与人数 1明经币 +1 收起 理由
zwq8629 + 1 很给力!

查看全部评分

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

本版积分规则

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

GMT+8, 2024-11-25 09:51 , Processed in 0.169788 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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