找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1373|回复: 13

[求助] [求助]:取点时同时取得圆心坐标怎么实现呢?

[复制链接]
发表于 2005-12-28 14:18:54 | 显示全部楼层 |阅读模式

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

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

×
我想在取点(如一个圆上的点)时取得圆心的坐标,同时取得鼠标点的坐标(此点在圆周上),请问怎么实现呢。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-12-29 09:31:56 | 显示全部楼层
id-->center获取圆心坐标;
鼠标点的坐标在你拾取(entsel)实体时就有dxf码返回,检索一下就可以得到!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 11307个

财富等级: 富甲天下

发表于 2005-12-29 11:20:11 | 显示全部楼层
......
(SETQ S1 (ENTSEL "\nSelect a Circle :"))
(SETQ PT (OSNAP (CADR S1) "NEA"))  ;圆上最近点
(SETQ PC (OSNAP PT "CEN"))              ;圆的中心点
......
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-12-29 19:25:07 | 显示全部楼层

  1. ;;;变量说明:
  2. ;;;pick_pt  拾取点坐标
  3. ;;;center_pt  圆心坐标
  4. (defun c:test        (/ ent pt)
  5.         (setq ent (entsel))
  6.         (if        ent
  7.                 (progn
  8.                         (if        (or        (= (cdr (assoc '0 (entget (car ent)))) "CIRCLE")
  9.                                                         (= (cdr (assoc '0 (entget (car ent)))) "ARC")
  10.                                         )
  11.                                 (progn
  12.                                         (setq pt (cdr ent))
  13.                                         (setq pick_pt (osnap (list (caar pt) (cadar pt)) "_nea"))
  14.                                         (setq center_pt (cdr (assoc '10 (entget (car ent)))))
  15.                                 )
  16.                         )
  17.                 )
  18.         )
  19.         (princ)
  20. )

测试:
; 1 表格 从test.lsp 文件正在加载...加载
_$ (c:test)
_$ pick_pt
(108.447 104.591 0.0)
_$ center_pt
(188.301 129.528 0.0)
_$
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

发表于 2005-12-31 13:22:55 | 显示全部楼层
最初由 nnqinj 发布
[B]4楼,写得不错。最好还能规范一些 [/B]

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

使用道具 举报

发表于 2005-12-31 17:11:06 | 显示全部楼层
我想这样会比较容易判读。

  1. (defun c:test (/ ent pt)
  2.     (setq ent (entsel))
  3.     (if ent
  4.         (progn
  5.           (if (or (= (cdr (assoc '0 (entget (car ent)))) "CIRCLE")
  6.                   (= (cdr (assoc '0 (entget (car ent)))) "ARC")
  7.               )
  8.               (progn
  9.                  (setq pt (cdr ent))
  10.                  (setq pick_pt (osnap (list (caar pt) (cadar pt)) "_nea"))
  11.                  (setq center_pt (cdr (assoc '10 (entget (car ent)))))
  12.               )
  13.            )
  14.          )
  15.      )
  16.      (princ)
  17. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-1-1 00:39:56 | 显示全部楼层
未看出9楼改写后的程序与我随手写得程序有何区别。
其实程序还存在一小问题,最主要的是未考虑容错处理...
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-1-1 09:12:34 | 显示全部楼层
最初由 qjcpj 发布
[B]
怎样才算规范,楼主能说说你的建议吗? [/B]
  1. [FONT=courier new]
  2. (defun c:test ()
  3.   (if (setq ent (entsel))
  4.     (setq et (entget (car ent)))
  5.   )
  6.   (if (or (= (cdr (assoc 0 et)) "CIRCLE")
  7.           (= (cdr (assoc 0 et)) "ARC")
  8.       )
  9.     (progn
  10.       (setq pt0        (cadr ent)
  11.             ppt        (osnap pt0 "_nea")
  12.             cpt        (cdr (assoc 10 et))
  13.       )
  14.       (princ "\n拾取点坐标 : ")
  15.       (princ ppt)
  16.       (princ "\n圆心坐标 : ")
  17.       (princ cpt)
  18.     )
  19.   )
  20.   (princ)
  21. )[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-1-1 21:36:15 | 显示全部楼层
说来惭愧,不知如何在上传中(主要是论坛板块)保持文字缩进,10楼斑竹能搞个文字缩进的演示吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2006-1-2 07:40:59 | 显示全部楼层
最初由 qjcpj 发布
[B]说来惭愧,不知如何在上传中(主要是论坛板块)保持文字缩进,10楼斑竹能搞个文字缩进的演示吗? [/B]
.

用PHP代碼!方法:

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

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2006-1-2 07:56:32 | 显示全部楼层
[ code ] 代码 [ /code ]

使用时中间没有空格,如果使用 ssget 中 < 过滤时就要使用  [ php ]  CODE [ / php ] 显示。另外代码最好用 Vlisp 编辑器格式化一下,这样阅读方便。

  1. (defun c:test (/ ent pt)
  2.   (if (and (setq ent (entsel))
  3.            (or (= (cdr (assoc '0 (entget (car ent)))) "CIRCLE")
  4.                (= (cdr (assoc '0 (entget (car ent)))) "ARC")
  5.            )
  6.       )
  7.     (setq pt            (cdr ent)
  8.           pick_pt   (osnap (list (caar pt) (cadar pt)) "_nea")
  9.           center_pt (cdr (assoc '10 (entget (car ent))))
  10.     )
  11.   )
  12.   (princ)
  13. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-29 01:40 , Processed in 0.545293 second(s), 59 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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