明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 5340|回复: 22

[源码] 求增减直线长度的工具

  [复制链接]
发表于 2011-7-22 19:44 | 显示全部楼层 |阅读模式
本帖最后由 gcho 于 2011-7-23 10:16 编辑

如何批量增减直线长度
思路:
1)命令里输入zz,命令栏里提示:输入增减长度n——提示选择对象——选中对象按n值增减——继续选择对象——对象按n值增减……
2)n值为负表示减,增减后的直线是在原来的基础上延伸(即增减后的直线仍为一根直线)
3)选中对象增减的方向靠近鼠标选择的那一方

最好是lsp程序,也想学习一下!
拜谢!


"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2011-7-22 21:37 | 显示全部楼层
这个好像不需要用到对话框吧。
 楼主| 发表于 2011-7-23 10:16 | 显示全部楼层
已改,应是:命令栏里提示
发表于 2011-7-23 12:04 | 显示全部楼层

  1. (defun c:len ()
  2.   (setvar "cmdecho" 0)
  3.   (setq en (entsel "\n选择需要修改的线段:"))
  4.   (setq lengthen (getreal "\n输入需增加或减少的长度:"))
  5.   (setq pt1 (cadr en))
  6.   (setq ent (entget (car en)))
  7.   (setq        pta (cdr (assoc 10 ent))
  8.         ptb (cdr (assoc 11 ent))
  9.   )
  10.   (if (> (distance pta pt1) (distance pt1 ptb))
  11.     (progn (setq pt2 (polar ptb (angle pta ptb) lengthen))
  12.            (setq ent1 (cons 11 pt2))
  13.            (setq ent (subst ent1 (assoc 11 ent) ent))
  14.            (entmod ent)
  15.     )
  16.     (progn (setq pt2 (polar pta (angle ptb pta) lengthen))
  17.            (setq ent1 (cons 10 pt2))
  18.            (setq ent (subst ent1 (assoc 10 ent) ent))
  19.            (entmod ent)
  20.     )
  21.   )
  22.   (setvar "cmdecho" 1)
  23.   (princ)
  24. )
发表于 2011-7-23 12:41 | 显示全部楼层
CAD中有 命令:LENGTHEN

命令: LEN
LENGTHEN
选择对象或 [增量(DE)/百分数(P)/全部(T)/动态(DY)]:
这么好的命令为啥不用?
发表于 2011-7-23 12:57 | 显示全部楼层
我知道有这个命令,这只是应楼主的要求,写的学习贴。
发表于 2011-7-23 13:11 | 显示全部楼层

  1. (defun c:zz ()
  2.   (setvar "cmdecho" 0)
  3.   (if (null old-len)
  4.     (setq old-len 0)
  5.   )
  6.   (if (setq len
  7.              (getreal
  8.                (strcat "\n输入一个增量值(负值为减量)<" (rtos old-len) ">:")
  9.              )
  10.       )
  11.     (setq old-len len)
  12.     (setq len old-len)
  13.   )

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

评分

参与人数 2金钱 +40 收起 理由
gbhsu + 20 好!
gcho + 20 好程序

查看全部评分

 楼主| 发表于 2011-7-25 09:56 | 显示全部楼层
ljpnb 发表于 2011-7-23 13:11

ljpnb 你的代码确实不错,有个建议,可否再升华,将修改的对象扩广到标注?
发表于 2011-7-26 07:05 | 显示全部楼层
再升华,将修改的对象扩广到标注!
发表于 2011-7-26 08:28 | 显示全部楼层
gbhsu 发表于 2011-7-26 07:05
再升华,将修改的对象扩广到标注!

不是很明白意思,是直接增减标注是还增减直线后标注自动跟着变动

点评

能不能增加批量选择功能啊,这样一条条的选择和CAD中len命令差不多  发表于 2016-11-9 18:21
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-6-16 08:13 , Processed in 0.152810 second(s), 33 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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