找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2031|回复: 9

[求助] 求这样的length程序?

[复制链接]
发表于 2014-3-7 16:52:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
可以把选择的直线或多段线按照两端平均伸缩的方法到用户指定的最终线段长度(有点类似于length-t命令,但是指定总长后它只是在某一端变化!)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 1742个

财富等级: 堆金积玉

发表于 2014-3-7 16:56:09 | 显示全部楼层
根据线的角度 修改起点与终点

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-3-7 18:52:14 来自手机 | 显示全部楼层
本帖最后由 st788796 于 2014-3-8 08:59 编辑

http://bbs.xdcad.net/forum.php?mod=redirect&goto=findpost&ptid=667437&pid=3444804
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 10395个

财富等级: 富甲天下

发表于 2014-3-8 08:23:26 | 显示全部楼层
本帖最后由 zxq0220 于 2014-3-10 07:34 编辑

;写了个直线的
  1. (defun c:tt ()
  2. (if (and (setq s1 (entsel "\n选择直线: "))
  3.           (setq ent (entget(car s1)))
  4.           (= (cdr(assoc 0 ent)) "LINE")) (progn
  5.   (setq p1 (cdr(assoc 10 ent)) p2 (cdr(assoc 11 ent))
  6.         ang (angle p1 p2)
  7.         l (distance p1 p2))
  8.   (if (setq newl (getdist (strcat "\n新长度<" (rtos l 2 3) ">: "))) (progn
  9.    (setq dl (/ (- newl l) 2))
  10.    (setq ent (subst (cons 11 (polar p2 ang dl)) (assoc 11 ent) ent))
  11.    (entmod (subst (cons 10 (polar p1 ang (- dl))) (assoc 10 ent) ent))
  12.   ))
  13. ))
  14. (princ)
  15. )

点评

程序运行成功,谢谢!但在实际情况中,常常需要一次对多个线段实现缩放,也就是说能不能实现多选线段,然后遍历修改线段,谢谢!  详情 回复 发表于 2014-3-10 12:41
你写的这个程序运行结果不正确,能帮忙修改下吗?谢谢!  详情 回复 发表于 2014-3-9 17:37
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-3-9 17:37:08 | 显示全部楼层

你写的这个程序运行结果不正确,能帮忙修改下吗?谢谢!

点评

程序改了,再试试。  详情 回复 发表于 2014-3-10 07:35
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 10395个

财富等级: 富甲天下

发表于 2014-3-10 07:35:27 | 显示全部楼层
rxing 发表于 2014-3-9 17:37
你写的这个程序运行结果不正确,能帮忙修改下吗?谢谢!

程序改了,再试试。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2014-3-10 08:38:34 | 显示全部楼层
本帖最后由 Free-Lancer 于 2014-3-10 08:43 编辑

对 line 而言,习惯用 ActiveX
  1. (defun c:tt (/ d)
  2.   (if (setq d (getdist "\nLength: "))
  3.     (progn
  4.       (fy:begin)
  5.       (while (ssget '((0 . "Line")))
  6.         (mapcar        '(lambda (x /  len vx an)
  7.                    (setq len (vlax-get x 'Length)
  8.                          vx  (* 0.5 (- len d))
  9.                          an  (vlax-get x 'Angle)
  10.                    )
  11.                    (vlax-put
  12.                      x
  13.                      'Startpoint
  14.                      (polar (vlax-get x 'Startpoint) an vx)
  15.                    )
  16.                    (vlax-put
  17.                      x
  18.                      'EndPoint
  19.                      (polar (vlax-get x 'Endpoint) (+ pi an) vx)
  20.                    )
  21.                  )
  22.                 (fy:cset->objs)
  23.         )
  24.       )
  25.       (fy:end)
  26.     )
  27.   )
  28.   (princ)
  29. )

点评

里面的一些函数如(fy:begin) (fy:end)能否把代码也加上,谢谢!  详情 回复 发表于 2014-3-10 10:37
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-3-10 10:37:25 | 显示全部楼层
Free-Lancer 发表于 2014-3-10 08:38
对 line 而言,习惯用 ActiveX

里面的一些函数如(fy:begin) (fy:end)能否把代码也加上,谢谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-3-10 12:41:20 | 显示全部楼层

程序运行成功,谢谢!但在实际情况中,常常需要一次对多个线段实现缩放,也就是说能不能实现多选线段,然后遍历修改线段,谢谢!

点评

多选加循环就行了。  详情 回复 发表于 2014-3-10 18:47
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 10395个

财富等级: 富甲天下

发表于 2014-3-10 18:47:34 | 显示全部楼层
rxing 发表于 2014-3-10 12:41
程序运行成功,谢谢!但在实际情况中,常常需要一次对多个线段实现缩放,也就是说能不能实现多选线段,然 ...

多选加循环就行了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-14 21:53 , Processed in 0.405121 second(s), 56 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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