明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1440|回复: 8

[求助]哪位大侠给编个程序呀?

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

如何将平面图形的坐标点自动导入到表格文件中


我最近工作中,经常做一些封闭图形(15个交点以内的),然后将各点的坐标发给线切割厂家进行加工,但每次画好图形后,总要将各个点的坐标依次手动输入,不仅效率低,还经常出错。
不知道有没有办法,画好图形后,能让各个坐标点自动生成表格的形式?
这里先谢谢大侠了!
发表于 2007-6-21 20:56 | 显示全部楼层

不知道你的图是如何画的,又不知道你的生成的表格是什么样的,程序怎么编?

另:在论坛搜索一下“线切割”会有很多你想要的结果。

 楼主| 发表于 2007-6-23 10:50 | 显示全部楼层

我的图是用ACAD画的,直线和圆弧构成的封闭平面图形,一般在15个连接点以内。我将左上角的点设为(0,0),然后想按逆时针的方向,依次提取各个连接点(端点)的坐标(x,y),自动保存到文本文档或Excel表格中。格式如下表,或在文本文档中两列也行,望版主能够多多指教!谢谢!

xy
  
  
  
  
  
  
  
  
  
  

发表于 2007-6-23 19:33 | 显示全部楼层
左上角?是各个封闭图形的左上角还是所有图形的左上角?是各个封闭图形的左上角端点坐标吗?如果图形没有左上角的点怎么办?
发表于 2007-6-23 21:26 | 显示全部楼层

本论坛的这个帖子,忘了作者是谁了

(defun liang(k pt3 r)
  (setq xx(car k))
  (setq yy(cadr k))
  (setq x1(car pt3))
  (setq y1(cadr pt3))
  (setq x1(+ 28 x1))
  (setq pe1(list x1 y1))
  (setq xj( - (car pt3) 10))
  (setq pe2(list xj y1))
  (command "text" pe2 3 0 r)
  (command "text" pt3 3 0 (rtos xx))
  (command "text" pe1 3 0 (rtos yy))
  )
 

(defun c:biaoge()
  (setq key 10 i 0 j 0)
  (setq obj (car (entsel "\nselect a Polyline: ")))
  (setq ent (entget obj))
  (setq pt(getpoint"\n坐标册放在:"))
  (setq x(car pt))
  (setq y(cadr pt))
  (setq yn y)
  (setq x4(- x 10))
  (setq pt4(list x4 y))
  (setq x1(+ 18 x4))
  (setq pt1(list x1 y))
  (setq x2(+ 46 x4))
  (setq pt2(list x2 y))
  (setq y9(+ y 7))
  (setq pt9(list x4 y9))
  (command "text" pt9 4 0 "界址点坐标册")
  (command "text" pt4 4 0 "点号")
  (command "text" pt1 4 0 "X坐标")
  (command "text" pt2 4 0 "Y坐标")
 
  (foreach xy ent
    (if (eq (car xy) key )
      (progn
 (setq j (1+ j))
 (setq pe1 (cdr xy))
 (command "text" pe1 3 0 j)
 (setq yn (- yn 10))
 (setq pt3 (list x yn))
 (liang pe1 pt3 j )
 )
      )
    )
  (setq x5(- x4 3.220))
  (setq y5(+ y 5.2259))
  (setq pt5(list x5 y5))
  (setq x6(+ x5 69.1817))
  (setq pt6(list x6 y5))
  (command "LINE" pt5 pt6 "")
  (setq a(entlast))
  (command "array" a "" "r" (+ j 2) 1 -10)
  (setq y7(- y5 10))
  (setq pt7(list x5 y7))
  (command "LINE" pt5 pt7 "")
  (setq a(entlast))
  (command "array" a "" "r"  (+ j 1) 2 -10  11)
  (setq pt8(list x6 y7))
  (command "LINE" pt6 pt8 "")
  (setq a(entlast))
  (command "array" a "" "r"  (+ j 1) 2 -10  -30)
  )
 

 楼主| 发表于 2007-6-25 10:06 | 显示全部楼层

每次就一个图形,肯定有左上角的点存在

 楼主| 发表于 2007-6-25 12:09 | 显示全部楼层
phoenixdjq发表于2007-6-23 21:26:00本论坛的这个帖子,忘了作者是谁了(defun liang(k pt3 r)  (setq xx(car k))  (setq yy(cadr k))  (setq x1(car pt3))  (setq y1(cadr pt3))  (setq x1(+ 28 x1))&nbs

谢谢你的回复!可我对这方面是一窍不通啊,还请指教这个程序如何使用!

再次谢谢!

发表于 2007-6-25 12:34 | 显示全部楼层

; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
;;读取多意线上各转点坐标程序
(DEFUN CII(/ FNAME F ZM ZM1 ED2 F11 XX YY S)
 (SETVAR "CMDECHO" 0)
 (SETQ FNAME (GETSTRING "请输入文件名:" ))
 (PRINC "\n请选择LWPOLYLINE......")
 (SETQ ED2 (ENTGET (CAR (ENTSEL))));取出选中对象的表
 (IF (/= (CDR (ASSOC 0 ED2)) "LWPOLYLINE")
  (PROGN
  (PRINC "抱歉!您没选中LWPOLYLINE。")
  (EXIT)
  );END PROGN
 );END IF
 (SETQ F (OPEN (STRCAT FNAME ".TXT") "W"));打开输出文件路径
 (SETQ ZM1 0 )
 (SETQ ZM (CDR (ASSOC 90 ED2)));顶点的数量
 (WHILE (< ZM1 ZM)
  (IF (/= (CAR (CAR ED2)) 10) (SETQ ED2 (CDR ED2)))
  (IF (= (CAR (CAR ED2)) 10)
   (PROGN
   (SETQ F11 (CDR (CAR ED2)));取出每一个点的坐标
   (SETQ XX (SJZL (CADR F11)))
   (SETQ YY (SJZL (CAR F11)))
   (SETQ S (STRCAT (XX "," YY"\n"));按格式拼数据
   (PRINC S F);输出数据
   (SETQ ED2 (CDR ED2));取下一个端点数据
   (SETQ ZM1 (+ ZM1 1))
   );END PROGN
  );END IF
 );END WHILE
 (CLOSE F);关闭文件
 (ALERT (STRCAT "你的坐标文件保存在" FNAME ".TXT请查看"))
 (PRINC)
);END DEFUN

; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
;(sub)保持小数点后3位
(DEFUN SJZL (NUM)
 (SETQ A (STRCAT (ITOA (FIX NUM)) "." (SUBSTR (RTOS (+ 1000 (* (- NUM (FIX NUM)) 1000)) 2 0) 2 3) ))
)

; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

 楼主| 发表于 2007-6-27 09:51 | 显示全部楼层

谢谢楼上的回复,可我不知道这个程序怎么用啊

怎么样转换成.lsp格式的呀?加载后才能用吧?

请进一步指教,我对这方面不懂啊

多谢了!

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

本版积分规则

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

GMT+8, 2024-5-18 21:03 , Processed in 0.274233 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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