找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1137|回复: 10

[编程申请]:将选中的LINE直线两端各缩短150mm

[复制链接]
发表于 2006-5-25 09:25:05 | 显示全部楼层 |阅读模式

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

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

×
求LSP程序,将选中的LINE直线两端各缩短150mm(希望能同时框选多条直线)。谢谢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 111个

财富等级: 日进斗金

发表于 2006-5-25 12:41:05 | 显示全部楼层
请试用以下程序:
  1. (Defun c:test()
  2.    (setq dd (getdist "\n缩短距离(以毫米为单位)<150mm>:")
  3.          p1 (getpoint "\n左上角点:")
  4.          p2 (getcorner p1 "\n右下角点:")
  5.    )
  6.    (if (= dd nil)(setq dd 150.0))
  7.    (if (setq ssa (ssget "w" p1 p2 '((0 . "LINE"))))
  8.        (progn
  9.           (setq i 0)
  10.           (repeat (sslength ssa)
  11.              (setq dxf (entget (ssname ssa i))
  12.                    p10 (cdr (assoc 10 dxf))
  13.                    p11 (cdr (assoc 11 dxf))
  14.                    ang (angle p10 p11)
  15.                    pt1 (polar p10 ang (/ dd 1000.0))
  16.                    pt2 (polar p11 (+ ang pi) (/ dd 1000.0))
  17.                    dxf (subst (cons 10 pt1) (assoc 10 dxf) dxf)
  18.                    dxf (subst (cons 11 pt2) (assoc 11 dxf) dxf)
  19.                    i   (1+ i)
  20.              )
  21.              (entmod dxf)
  22.           )
  23.         )
  24.    )
  25.    (princ)
  26.          
  27. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-25 13:06:06 | 显示全部楼层
经cad2004测试,yshf大侠的LSP程序可用。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-5-25 15:04:48 | 显示全部楼层
[php]
;; spline仅支持缩短,ellipse和arc当延伸长度超过周期,不改变。
(Defun c:lenx(/ dd i ss a b)
   (princ "\n 双向延伸曲线长度(支持*line,arc,ellipse)----by 雨箭风刀.2006.5")
   (if (not *lenx)(setq *lenx 0.0))
   (princ "\n双向延伸距离(负值缩短)<")(princ *lenx)
   (setq dd (getdist ">:"))
   (if dd (setq *lenx dd))
   (if (setq i -1 ss (ssget '((0 . "*LINE,ELLIPSE,ARC"))))
       (while (setq e (ssname ss (setq i (1+ i))))
         (setq a (vlax-curve-getstartpoint e)
               b (vlax-curve-getendpoint e))
         (command ".lengthen" "de" *lenx (list e a)(list e b)"")
        )
   )
   (princ)         
)
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-5-25 21:50:14 | 显示全部楼层
2楼:
(/ dd 1000.0)
没有道理也没有必要!

  1. [FONT=courier new](defun c:test ()
  2.   (CMDLA0)
  3.   (if (null dist)
  4.     (setq dist 150.0)
  5.   )
  6.   (setq        DIST (UDIST 1 "" "\n输入两端要缩短的距离<或直接量取>" DIST nil)
  7.         ss   (ssget '((0 . "LINE")))
  8.         i    -1
  9.   )
  10.   (while (setq s1 (ssname ss (setq i (1+ i))))
  11.     (if        (> (xyp-get-CurveLength s1) (* DIST 2.0))
  12.       (progn
  13.         (setq p0  (xyp-get-dxf 10 s1)
  14.               p1  (xyp-get-dxf 11 s1)
  15.               ang (angle p0 p1)
  16.         )
  17.         (xyp-SUBUPD s1 10 (polar p0 ang dist))
  18.         (xyp-SUBUPD s1 11 (polar p1 ang (* dist -1.0)))
  19.       )
  20.     )
  21.   )
  22.   (CMDLA1)
  23. )[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 111个

财富等级: 日进斗金

发表于 2006-5-26 07:51:14 | 显示全部楼层
请问xyp1964:以米为单位绘图,现在输入的是毫米,该如何处理?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-5-26 09:53:31 | 显示全部楼层
支持看来要好学下lisp编程
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-28 08:34:45 | 显示全部楼层
经cad2004测试,雨箭风刀的LSP程序可用。 谢谢。

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

使用道具 举报

发表于 2006-5-28 09:38:33 | 显示全部楼层
最初由 yshf 发布
[B]请问xyp1964:以米为单位绘图,现在输入的是毫米,该如何处理? [/B]

当“以米为单位绘图,现在输入的是毫米”时,确实要(/ dd 1000.0),不过帖子的主题没有这个限定,有了这个限定反而受约束。
问题:
当线长小于2×150时,线没有缩短反而加长了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-5 10:35 , Processed in 0.305137 second(s), 51 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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