找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 819|回复: 6

[求助] [求助]:延长单段端点在圆周上的PL端点到圆心?

[复制链接]
发表于 2007-6-15 14:16:43 | 显示全部楼层 |阅读模式

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

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

×
单段PL端点在圆周,且延长线过圆心。
1怎样选择端点在圆周上的单段PL?用ssget c?有没有更好方法?
2怎样判断延长线过圆心?
3单段多义线组码中所有端点都是(10  x  y ),怎样判断哪个是哪个端点?
我所有PL都是单段的,所以只考虑单段就行。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2007-6-15 14:39:00 | 显示全部楼层
不懂,楼主问这么些问题的目的是为了?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 10404个

财富等级: 富甲天下

发表于 2007-6-15 21:31:43 | 显示全部楼层
这样试试看
[php]
(DEFUN C:TOCENTER ()
(PRINC "\nSelect a circle 选择一个圆 :")
(IF (SETQ SS (SSGET '((0 . "CIRCLE")))) (PROGN
(SETQ PC (CDR (ASSOC 10 (ENTGET (SSNAME SS 0)))))
(PRINC "\nSelect a Polyline 选择复线 :")
(IF (SETQ SS1 (SSGET '((0 . "*POLYLINE")))) (PROGN
  (SETQ ENT1 (ENTGET (SSNAME SS1 0))
        ENM (CDR (ASSOC 0 ENT1)))
  (COND
   ((= ENM "LWPOLYLINE")
    (SETQ PT1 (CDR (ASSOC 10 ENT1))
          PT2 (CDR (ASSOC 10 (REVERSE ENT1))))
   )
   (T
    (SETQ SN1 (ENTNEXT (CDR (ASSOC -1 ENT1)))
          LB (ENTGET SN1)          LM (CDR (ASSOC 0 LB))
          PT1 (CDR (ASSOC 10 LB)))
    (WHILE (/= LM "SEQEND")
     (SETQ SN1 (ENTNEXT (CDR (ASSOC -1 LB)))  LC (ENTGET SN1)
           LM (CDR (ASSOC 0 LC))        PT2 (CDR (ASSOC 10 LC)))
    )
   )
  )
  (SETQ PT (IF (< (DISTANCE PT1 PC) (DISTANCE PT2 PC)) PT1 PT2))
  (COMMAND "STRETCH" "C" PT PT "" PT PC)
))
))
(PRINC)
)
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-6-17 14:32:05 | 显示全部楼层
楼上:
每次要选若干圆,和每个圆相交的所有单段多义线都要延长至圆心。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 10404个

财富等级: 富甲天下

发表于 2007-6-17 20:46:28 | 显示全部楼层
条件不一次说明白。下面的程序试试看:
[php]
(DEFUN C:TOCENTER ()
(PRINC "\nSelect a circle 选择圆 :")
(IF (SETQ SS (SSGET '((0 . "CIRCLE")))) (PROGN
(SETQ I -1)
(REPEAT (SSLENGTH SS)
  (SETQ EN (SSNAME SS (SETQ I (1+ I)))
        ENT (ENTGET EN)
        PC (CDR (ASSOC 10 ENT))
        R (CDR (ASSOC 40 ENT))
        P1 (POLAR (POLAR PC 0 R) (/ PI 2) R)
        P2 (POLAR (POLAR PC PI R) (/ PI -2) R))
  (IF (> (SSLENGTH (SETQ SS1 (SSGET "C" P1 P2))) 2) (PROGN
   (SETQ SS1 (SSDEL EN SS1) J -1)
   (REPEAT (SSLENGTH SS1)
    (SETQ ENT1 (ENTGET (SSNAME SS1 (SETQ J (1+ J))))
          ENM (CDR (ASSOC 0 ENT1)))
    (COND
     ((= ENM "LWPOLYLINE")
      (SETQ PT1 (CDR (ASSOC 10 ENT1))
            PT2 (CDR (ASSOC 10 (REVERSE ENT1))))
     )
     (T
      (SETQ SN1 (ENTNEXT (CDR (ASSOC -1 ENT1)))
            LB (ENTGET SN1)          LM (CDR (ASSOC 0 LB))
            PT1 (CDR (ASSOC 10 LB)))
      (WHILE (/= LM "SEQEND")
       (SETQ SN1 (ENTNEXT (CDR (ASSOC -1 LB)))  LC (ENTGET SN1)
             LM (CDR (ASSOC 0 LC))        PT2 (CDR (ASSOC 10 LC)))
      )
     )
    )
    (SETQ PT (IF (< (DISTANCE PT1 PC) (DISTANCE PT2 PC)) PT1 PT2))
    (COMMAND "STRETCH" "C" PT PT "" PT PC)
   )
  ))
)
))
(PRINC)
)
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-17 09:59 , Processed in 0.174160 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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