明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2464|回复: 14

[提问] 线段 两端同时缩短指定长度,怎么实现

[复制链接]
发表于 2021-3-18 11:30:50 | 显示全部楼层 |阅读模式
下面这段程序只能实现一端宿指定长度,我想要两端同时缩短指定指定长度,那位大神,帮我修改下

(defun c:dj ()
  (setvar "cmdecho" 0)
  (if (null old-len)
    (setq old-len 0)
  )
  (if (setq len
             (getreal
               (strcat "\n输入一个增量值(负值为减量)<" (rtos old-len) ">:")
             )
      )
    (setq old-len len)
    (setq len old-len)
  )

  (command "LENGTHEN" "de" len)
  (while (/= 0 (getvar "cmdactive"))
    (prompt "\n选择要修改的对象或 [放弃(U)]:")
    (command pause)
  )
  (setvar "cmdecho" 1)
  (princ)
)

发表于 2021-3-21 13:16:29 | 显示全部楼层
edsion24 发表于 2021-3-20 23:41
大神能否让这个程序支持多段线呢?




本帖子中包含更多资源

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

x
回复 支持 1 反对 0

使用道具 举报

发表于 2021-3-18 12:27:52 | 显示全部楼层
;;直线两端伸缩
(defun c:tt5 (/ entname len p10 p11)
  (setvar "cmdecho" 0)
  (if (null old-len)
    (setq old-len 0)
  )
  (if (setq len
                                (getreal
                                        (strcat "\n输入一个增量值(负值为减量)<" (rtos old-len) ">:")
                                )
      )
    (setq old-len len)
    (setq len old-len)
  )
        (while  (setq entname (car (entsel "\n请选择对象:")))
                (setq p10 (cdr (assoc 10 (entget entname))) p11 (cdr (assoc 11 (entget entname))))
                (command "LENGTHEN" "de" len (list entname p10) (list entname p11) "")
  )
  (setvar "cmdecho" 1)
  (princ)
)
回复 支持 1 反对 0

使用道具 举报

发表于 2021-3-18 17:11:49 | 显示全部楼层
tigcat 发表于 2021-3-18 16:21
这个金牌会员靠回帖搞来的

找几个例子认真看一下就懂了,下次别再问那些什么批量、记忆上次什么的了

;;直线两端伸缩 (批量)
(defun c:tt5 (/ entname i len p10 p11 ss key)
  (setvar "cmdecho" 0)
  (if (null old-len)
    (setq old-len 0)
  )
  (if (setq len
                                (getreal
                                        (strcat "\n输入一个增量值(负值为减量)<" (rtos old-len) ">:")
                                )
      )
    (setq old-len len)
    (setq len old-len)
  )
       
        (setq ss (ssget '((0 . "LINE"))))
        (setq i -1)
        (while (setq entname (ssname ss (setq i (1+ i))))
                (setq p10 (cdr (assoc 10 (entget entname))) p11 (cdr (assoc 11 (entget entname))))
                (command "LENGTHEN" "de" len (list entname p10) (list entname p11) "")               
        )
        (while  (/= key "e")
               
                (setq key (getstring "\n是否继续操作?[增长(Q)/缩短(W)/退出(E)]<上一次>:"))
               
                (cond
                        ((= key "") (setq i -1) (while (setq entname (ssname ss (setq i (1+ i)))) (setq p10 (cdr (assoc 10 (entget entname))) p11 (cdr (assoc 11 (entget entname)))) (command "LENGTHEN" "de" len (list entname p10) (list entname p11) "")))
                        ((= key "q") (if (< len 0) (setq len (* len -1))) (setq i -1) (while (setq entname (ssname ss (setq i (1+ i)))) (setq p10 (cdr (assoc 10 (entget entname))) p11 (cdr (assoc 11 (entget entname)))) (command "LENGTHEN" "de" len (list entname p10) (list entname p11) "")))
                        ((= key "w") (if (< len 0) () (setq len (* len -1))) (setq i -1) (while (setq entname (ssname ss (setq i (1+ i)))) (setq p10 (cdr (assoc 10 (entget entname))) p11 (cdr (assoc 11 (entget entname)))) (command "LENGTHEN" "de" len (list entname p10) (list entname p11) "")))
                )
               
  )
        (prompt "\n***已退出命令!***")
  (setvar "cmdecho" 1)
  (princ)
)

评分

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

查看全部评分

 楼主| 发表于 2021-3-18 13:09:45 | 显示全部楼层
start4444 发表于 2021-3-18 12:27
;;直线两端伸缩
(defun c:tt5 (/ entname len p10 p11)
  (setvar "cmdecho" 0)

谢谢,我测试了真的可以唉,太感谢了
发表于 2021-3-18 15:49:33 | 显示全部楼层
start4444 发表于 2021-3-18 12:27
;;直线两端伸缩
(defun c:tt5 (/ entname len p10 p11)
  (setvar "cmdecho" 0)

大侠,能批量直线吗?
发表于 2021-3-18 16:17:54 | 显示全部楼层
tigcat 发表于 2021-3-18 15:49
大侠,能批量直线吗?

你都金牌会员了,别总问这些基本操作的问题啊
发表于 2021-3-18 16:21:03 | 显示全部楼层
start4444 发表于 2021-3-18 16:17
你都金牌会员了,别总问这些基本操作的问题啊

这个金牌会员靠回帖搞来的
发表于 2021-3-18 20:25:19 | 显示全部楼层
点赞,十个手指不够

评分

参与人数 1明经币 +1 收起 理由
xj6019 + 1 神马都是浮云

查看全部评分

发表于 2021-3-19 09:34:34 | 显示全部楼层
start4444 发表于 2021-3-18 17:11
找几个例子认真看一下就懂了,下次别再问那些什么批量、记忆上次什么的了

;;直线两端伸缩 (批量)

好的,会努力学习的。看来大侠看到批量这几个字比较敏感
发表于 2021-3-19 21:03:32 | 显示全部楼层
收藏学习了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-16 21:19 , Processed in 0.183478 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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