找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 846|回复: 6

[求助] [求助]:pl线中点的坐标获得问题?

[复制链接]
发表于 2005-1-24 13:17:07 | 显示全部楼层 |阅读模式

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

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

×
经常要把多义线的坐标获得到要转为其他格式,但是cad中用list命令只能获得特定格式的坐标方式,要经过多次转化后才能成为自己想要的格式(一般在word或excel中转化),能不能编写一个程序,改变坐标格式,然后直接复制使用呢?
还有当点较多时,系统老是提示按enter键继续,能不能拿掉,这样比较方便一点,忘兄台指点一二,编个例子让小弟也学学(最好中间能用一个空格符分开,小弟经常要用到)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-1-24 18:12:56 | 显示全部楼层
看看这个:
http://www.xdcad.net/forum/showthread.php?s=&threadid=325268
test010:多义线顶点坐标 ★
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-1-24 19:20:17 | 显示全部楼层

  1. (defun c:zbxwj ()
  2.   (setvar "cmdecho" 0)
  3.   (setq ffn (getfiled "\n 保存的坐标文件" "czg write" "txt" 1))
  4.   (setq ff (open ffn "w"))
  5.   (close ff)
  6.   (princ "\n 选择多段线")
  7.   (setq ss (ssget))
  8.   (setq i 0)
  9.   (repeat (sslength ss)
  10.     (setq ssn (ssname ss i))
  11.     (setq ssdata (entget ssn))
  12.     (setq sstype (cdr (assoc 0 ssdata)))
  13.     (if        (= sstype "LWPOLYLINE")
  14.       (progn
  15.         (setq n 0)
  16.         (repeat        (length ssdata)
  17.           (setq pp (nth n ssdata))
  18.           (setq key (car pp))
  19.           (if (= key 10)
  20.             (progn
  21.               (setq x (cadr pp))
  22.               (setq y (caddr pp))
  23.               (setq ff (open ffn "a"))
  24.               (princ x ff)
  25.               (princ "\t" ff)
  26.               (princ y ff)
  27.               (princ "\n" ff)
  28.               (close ff)
  29.             ) ;_ end of progn
  30.           ) ;_ end of if
  31.           (setq n (1+ n))
  32.         ) ;_ end of repeat
  33.       ) ;_ end of progn
  34.     ) ;_ end of if
  35.     (setq ff (open ffn "a"))
  36.     (princ "\n" ff)
  37.     (close ff)

  38.     (setq i (1+ i))
  39.   ) ;_ end of repeat

  40.   (setq ff (open ffn "a"))
  41.   (princ "\n 结束\n" ff)
  42.   (close ff)

  43.   (princ (strcat "\n 坐标写至=>" ffn))
  44.   (prin1)
  45. ) ;_ end of defun

  46. (prompt "\n ***<>*** 程序设计作者:ZG*CHEN")
  47. (prompt "\n 多段线坐标写入指定文件 命令: zbxwj")
  48. (prin1)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-1-25 12:59:49 | 显示全部楼层
我觉得作为一个程序员,首先要人性化,其次也要为计算机做考虑,有getfile函数是一个好的做法,但好象没有必要open和close在程序中N多次地出现,计算机很快,但我想她们不应该是为了处理大量的无用代码发热。在构造选择集的时候,有时候可能中需要处理一条线段或是某一图层中的多义线,写者却选择了图形所有的多义线!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-1-26 20:25:59 | 显示全部楼层
最初由 qinj9703034 发布
[B]我觉得作为一个程序员,首先要人性化,其次也要为计算机做考虑,有getfile函数是一个好的做法,但好象没有必要open和close在程序中N多次地出现,计算机很快,但我想她们不应该是为了处理大量的无用代码发热。在构造?.. [/B]

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

使用道具 举报

发表于 2005-1-27 00:25:00 | 显示全部楼层
照4樓說的可稍為簡化
(defun c:zbxwj ()
  (setvar "cmdecho" 0)
  (setq ffn (getfiled "\n 保存的坐標文件" "czg write" "txt" 1))
  (setq ff (open ffn "w"))
  (setq ss (ssget))
  (setq ss (ssget "p" '((0 . "LWPOLYLINE"))))
  (setq i 0)
  (repeat (sslength ss)
    (setq ssn (ssname ss i))
    (setq ssdata (entget ssn))
    (setq n 0)
    (repeat (length ssdata)
      (setq pp (nth n ssdata))
      (setq key (car pp))
      (if (= key 10)
        (progn
          (setq x (cadr pp))
          (setq y (caddr pp))
          (princ x ff)
          (princ "\t" ff)
          (princ y ff)
          (princ "\n" ff)
        ) ;_ end of progn
       ) ;_ end of if
       (setq n (1+ n))
    ) ;_ end of repeat
   
    (setq i (1+ i))
    (princ "\n 結束\n" ff)
  ) ;_ end of repeat

  (close ff)

  (princ (strcat "\n 坐標寫至=>" ffn))
  
) ;_ end of defun

(prompt "\n ***<>*** 程序設計作者:ZG*CHEN")
(prompt "\n 多段線坐標寫入指定文件 命令: zbxwj")
(prin1)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-1-27 00:50:16 | 显示全部楼层
小数点应保留至少3位。
[php];;;坐标写文件
(defun c:zbxwj (/ ffn ff ss i ssn ssdata n pp key x y)
  (setvar "cmdecho" 0)
  (setq        ffn (getfiled "\n保存的坐标文件" "坐标" "txt" 1)
        ff  (open ffn "w")
        ss  (ssget '((0 . "*LINE")))
        i   -1)
  (repeat (sslength ss)
    (setq ssdata (entget (ssname ss (setq i (1+ i)))) n 0)
    (repeat (length ssdata)
      (setq pp        (nth n ssdata) key (car pp))
      (if (= key 10)
        (progn
          (setq tx (strcat (rtos (cadr pp) 2 3) " , " (rtos (caddr pp) 2 3)))
          (write-line tx ff)))
      (setq n (1+ n))))
  (close ff)
  (princ (strcat "\n 坐标写至=>" ffn))
  (princ))
(prompt "\n***<>*** 程序设计作者:ZG*CHEN")
(prompt "\n多段线坐标写入指定文件 命令: zbxwj")[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-27 21:17 , Processed in 0.235387 second(s), 44 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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