明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 771|回复: 5

[提问] 下面的组合,为什么不能成功呢?

[复制链接]
发表于 2015-8-12 16:27:36 | 显示全部楼层 |阅读模式
程序想实现量取距离,取其四分之一或三分之一数值赋值A,然后选取 B C D ,把B C D 替换成A。
希望高手能帮忙,谢谢了!

(defun c:tt (/ apt1 apt2 list1 en en_data en1 en1_data ss k entype old_text new_text_data)
  (prompt " 请直接量取距离或者输入一个值:")
  (if (setq apt1 (getpoint " 请指定点:"))
    (progn
      (setq apt2 (getpoint " 请指定第二个点:"))
      (setq list1 (distance apt1 (list (car apt2) (cadr apt1))));返回量取的X轴的值
    )
      (setq list1 (getreal " 请输入一个值:"))
  )
  (setq en (/ list1 4))
  (setq en_data (entget (car en)))
  (prompt "\n请选择要修改内容的文字:")
  (setq ss (ssget))
  (setq k 0)
  (repeat (sslength ss)
    (setq en1 (ssname ss k))
    (setq en1_data (entget en1))
    (setq entype (cdr (assoc 0 en1_data)))
;;;单行文字的内容格式刷
    (if
(= entype "TEXT")
      (sametext en1_data en_data)
      )
;;;天正文字的内容格式刷
    (if
(= entype "TCH_TEXT")
      (sametext en1_data en_data)
    )
    (setq k (1+ k))
  )
  (prin1)
)
(defun sametext      
(en1_data en_data)
  (setq old_text (cdr (assoc 1 en_data)))
  (setq new_text_data (cons 1 old_text))
  (setq en1_data (subst new_text_data (assoc 1 en1_data) en1_data))
  (entmod en1_data)
);end of  sametext

发表于 2015-8-12 16:51:03 | 显示全部楼层
本帖最后由 风流少年时 于 2015-8-12 16:52 编辑

(setq en_data (entget (car en)))这里的en只是数字了,不是图元。
 楼主| 发表于 2015-8-12 17:06:00 | 显示全部楼层
本帖最后由 freeok 于 2015-8-12 17:21 编辑

要如何转换呢?,,,唉,一直静不下

本帖子中包含更多资源

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

x
发表于 2015-8-12 17:23:21 | 显示全部楼层
  • (defun c:tt ()
  •   (prompt " 请直接量取距离或者输入一个值:")
  •   (if (setq apt1 (getpoint "\n请指定点:"))
  •     (progn
  •       (setq apt2 (getpoint apt1 "\n请指定第二个点:"))
  •       (setq list1 (distance apt1 (list (car apt2) (cadr apt1))));返回量取的X轴的值
  •     )
  •     (setq list1 (getreal "\n请输入一个值:"))
  •   )
  •   (setq en (/ list1 4))
  •   (setq en (rtos en))
  •   (setq en (cons 1 en))
  •   (prompt "\n请选择要修改内容的文字:")
  •   (setq ss (ssget))
  •   (setq k 0)
  •   (repeat (sslength ss)
  •     (setq en1 (ssname ss k))
  •     (setq en1_data (entget en1))
  •     (setq old_data (assoc 1 en1_data))
  •     (setq entype (cdr (assoc 0 en1_data)))
  •     ;;;单行文字的内容格式刷
  •     (if
  •       (= entype "TEXT")
  •       (progn
  •         (setq ent (subst en old_data en1_data))
  •         (entmod ent)
  •       )
  •     )
  •     ;;;天正文字的内容格式刷
  •     (if
  •       
  •       (= entype "TCH_TEXT")
  •       (progn
  •         (setq ent (subst en old_data en1_data))
  •         (entmod ent)
  •       )
  •     )
  •     (setq k (1+ k))
  •   )
  •   (prin1)
  • )
 楼主| 发表于 2015-8-12 17:27:38 | 显示全部楼层
风流少年时 发表于 2015-8-12 17:23
  • (defun c:tt ()
  •   (prompt " 请直接量取距离或者输入一个值:")
  •   (if (setq apt1 (getpoint " ...

  • 非常感谢!!!
     楼主| 发表于 2015-8-12 18:47:31 | 显示全部楼层
    风流少年时 发表于 2015-8-12 17:23
  • (defun c:tt ()
  •   (prompt " 请直接量取距离或者输入一个值:")
  •   (if (setq apt1 (getpoint " ...

  • 老师,我那个还能帮我改下吗?
    之前没想周到,是我量X方向取X距离,量Y向则是取Y向距离。
    拜托了!
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

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

    GMT+8, 2025-5-21 13:16 , Processed in 0.200198 second(s), 26 queries , Gzip On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

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