找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 724|回复: 8

(完成)[编程申请]:将所选线的端点汇聚一点(附图)

[复制链接]
发表于 2004-9-13 16:40:11 | 显示全部楼层 |阅读模式

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

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

×
希望能框选部分线(SPL线,PL线和Line线)的端点,并指定某端点为最终交汇点,将所选线的端点汇聚最终交汇点。关键要能对SPL线起作用。见图:
谢谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 593个

财富等级: 财运亨通

发表于 2004-9-13 18:26:20 | 显示全部楼层

  1. (defun c:ChgLp (/ ss e el ep etyp p sp ssl)
  2.   (if (and (setq p (getpoint "\n集中点: "))
  3.            (progn
  4.              (princ "\n选择要修改的Spline,Line,Pline...")
  5.              (if (setq ss (ssget '((0 . "Spline,line,lwpolyline"))))
  6.                ss
  7.                t
  8.              )
  9.            )
  10.       )
  11.     (progn
  12.       (setq ssl (sslength ss))
  13.       (while (> ssl 0)
  14.         (setq e           (ssname ss (setq ssl (1- ssl)))
  15.               el   (entget e)
  16.               sp   (vlax-curve-getstartpoint e)
  17.               ep   (vlax-curve-getendpoint e)
  18.               etyp (cdr (assoc 0 el))
  19.         )
  20.         (if (> (distance sp p) (distance ep p))
  21.           (cond
  22.             ((= etyp "LINE")
  23.              (entmod (subst (cons 11 p) (assoc 11 el) el))
  24.             )
  25.             ((= etyp "SPLINE")
  26.              (entmod (subst (cons 10 p)
  27.                             (assoc 10 (reverse el))
  28.                             el
  29.                      )
  30.              )
  31.             )
  32.             (t
  33.              (entmod (subst (list 10 (car p) (cadr p))
  34.                             (assoc 10 (reverse el))
  35.                             el
  36.                      )
  37.              )
  38.             )
  39.           )
  40.           (cond
  41.             ((= etyp "LINE")
  42.              (entmod (subst (cons 10 p) (assoc 10 el) el))
  43.             )
  44.             ((= etyp "SPLINE")
  45.              (entmod (subst (cons 10 p)
  46.                             (assoc 10 el)
  47.                             el
  48.                      )
  49.              )
  50.             )
  51.             (t
  52.              (entmod (subst (list 10 (car p) (cadr p))
  53.                             (assoc 10 el)
  54.                             el
  55.                      )
  56.              )
  57.             )
  58.           )
  59.         )
  60.       )
  61.     )
  62.   )
  63.   (princ)
  64. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-9-14 08:32:03 | 显示全部楼层
大侠:
无论R14还是2002加载后,均不能对SPL线起作用。
请帮忙看看
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2004-9-14 12:23:59 | 显示全部楼层
最初由 星期八 发布
[B]大侠:
无论R14还是2002加载后,均不能对SPL线起作用。
请帮忙看看 [/B]

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

使用道具 举报

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

使用道具 举报

发表于 2004-10-8 15:35:04 | 显示全部楼层
试了:1、选择要一个一个的选。2、能交汇但无法指定交汇点。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 11286个

财富等级: 富甲天下

发表于 2004-10-8 15:37:43 | 显示全部楼层
将eachy斑竹的程序修改如下:
[php]
(defun c:ChgLp (/ P SS SSL EL ETYP SP EP PC R)
  (if (and (setq p (getpoint "\n集中点: "))
           (progn
             (princ "\n选择要修改的Arc,Spline,Line,Pline...")
             (if (setq ss (ssget '((0 . "Arc,Spline,line,lwpolyline"))))
               ss
               t
             )
           )
      )
    (progn
      (setq ssl (sslength ss))
      (REPEAT ssl
        (SETQ EL (ENTGET (SSNAME SS (SETQ SSL (1- SSL)))))
        (SETQ ETYP (CDR (ASSOC 0 EL)))
        (COND
          ((= ETYP "LINE")
           (SETQ SP (CDR (ASSOC 10 EL))
                 EP (CDR (ASSOC 11 EL))
           )
          )
          ((= ETYP "ARC")
           (SETQ PC (CDR (ASSOC 10 EL))
                 R  (CDR (ASSOC 40 EL))
                 SP (POLAR PC (CDR (ASSOC 50 EL)) R)
                 EP (POLAR PC (CDR (ASSOC 51 EL)) R)
           )
          )
          ((OR (= ETYP "SPLINE") (= ETYP "LWPOLYLINE"))
           (SETQ SP (CDR (ASSOC 10 EL))
                 EP (CDR (ASSOC 10 (REVERSE EL)))
           )
          )
        )
        (IF (> (DISTANCE SP P) (DISTANCE EP P))
          (COMMAND "STRETCH" "C" EP EP "" EP P)
          (COMMAND "STRETCH" "C" SP SP "" SP P)
        )
      )                                        ; end while
    )
  )                                        ; end if
  (princ)
)
[/php]
程序在R14版调试通过,支持ARC、LINE、LWPOLYLINE、SPLINE。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-10-13 19:43:47 | 显示全部楼层
真是谢谢热心的朋友们啊。
这个软件是提高工作效率!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-21 13:29 , Processed in 0.191576 second(s), 49 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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