明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: iszc

[提问] 导出圆心坐标

[复制链接]
发表于 2014-10-21 11:18:17 | 显示全部楼层
我也需要,十分感谢
发表于 2014-10-21 13:50:05 | 显示全部楼层
如果大小圆孔分出更好
发表于 2014-10-21 20:10:15 | 显示全部楼层
啊业_48384 发表于 2014-10-21 13:50
如果大小圆孔分出更好

那就导出圆半径,再按其半径大小排序!
 楼主| 发表于 2014-10-21 20:15:05 | 显示全部楼层
不知能用一条多义线连接所有圆心坐标么,这样导出的坐标好像不是按照上下左右顺序排列的

点评

搭配相映的运算式即可  发表于 2014-10-25 13:21
发表于 2014-10-23 21:39:07 | 显示全部楼层
以这样就更好,老师们改下
D2.00
N1,54.92,-2.62
N2,131.76,-2.62
N3,83.49,-28.74
N4,142.67,-28.74
N5,114.62,-52.02
N6,59.37,-52.02
N7,77.79,-52.02
D3.00
N8,96.20,-52.02
N9,133.03,-52.02
N10,38.16,-55.20
D4.0
N11,123.88,-76.57
N12,34.73,-78.86
发表于 2014-10-24 21:29:16 | 显示全部楼层
以这样就更好,老师们改下
发表于 2014-10-25 12:28:21 | 显示全部楼层
  1. (defun c:tt(/ e e1 e2 f n m p pp p0 pt y x r r0)
  2.   (setq f (open "D:/test.txt" "w"))
  3.   (setq s (ssget))
  4.   (setq n (sslength s) m 0 pp '())
  5.   (repeat n
  6.     (setq e (ssname s m) m (1+ m))
  7.     (setq e1 (entget e))
  8.     (setq e2 (cdr(assoc 0 e1)))
  9.     (if (= e2 "CIRCLE")
  10.         (progn
  11.           (setq pt (cdr (assoc 10 e1)))
  12.           (setq  y (car pt) x (cadr pt))
  13.          (setq  r (cdr (assoc 40 e1)))
  14.           (setq pp (cons (list r y x) pp))
  15.         )
  16.     )
  17.    )
  18.     (setq pp (sort_pList pp))
  19.     (setq m 0 r0 nil)
  20.   (repeat (length pp)
  21.     (setq p (nth m pp) m (1+ m))
  22.     (setq r (car p))
  23.     (setq p0 (strcat "N" (rtos m 2 0) "," (rtos (cadr p) 2 2) "," (rtos (caddr p) 2 2)))
  24.     (if (/= r r0)
  25.       (progn
  26.           (write-line (strcat "D" (rtos r 2 2)) f)
  27.           (write-line p0 f)
  28.           (setq r0 r)
  29.       )
  30.       (progn
  31.             (write-line p0 f)
  32.       )
  33.     )  
  34.   )
  35.    (close f)
  36.     (princ)
  37. )

  38. ;;;对点表按xyz排序
  39. (defun sort_pList (plist / fp pt)
  40.   (setq plist (vl-sort plist
  41.          '(lambda (p1 p2)
  42.           (cond ((< (car p1) (car p2)) T)
  43.           ((and (= (car p1) (car p2))
  44.           (> (caddr p1) (caddr p2))
  45.      )
  46.      T
  47.     )
  48.     ((and (= (car p1) (car p2))
  49.           (= (caddr p1) (caddr p2))
  50.           (< (cadr p1) (cadr p2))
  51.      )
  52.      T
  53.     )
  54.     (T nil)
  55.      )
  56.    )
  57.        )
  58.    )
  59.   )

评分

参与人数 1明经币 +1 收起 理由
vectra + 1 代码还是不错的

查看全部评分

发表于 2014-10-27 12:55:07 | 显示全部楼层
啊业_48384 发表于 2014-10-24 21:29
以这样就更好,老师们改下

要的那么厉害,不见人了。
发表于 2014-10-29 10:43:01 | 显示全部楼层
D不是直径吗,是半径的呀。还是谢谢!!!
发表于 2014-10-29 11:06:12 | 显示全部楼层
本帖最后由 wmz 于 2014-10-29 11:11 编辑
啊业_48384 发表于 2014-10-29 10:43
D不是直径吗,是半径的呀。还是谢谢!!!

你是要直径还是要半径?
若是要直径,改这一句: (setq  r (cdr (assoc 40 e1))) 改为: (setq  r (*(cdr (assoc 40 e1))2.0))
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-17 10:27 , Processed in 0.167188 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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