找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 610|回复: 2

[下载]:[下载]:可在多义线的角点上自动进行编号(功能:可自已选择起点、正向、反向

[复制链接]
发表于 2005-5-19 15:37:56 | 显示全部楼层 |阅读模式

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

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

×
自已觉得还比较实用,大家试试
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-5-19 20:54:19 | 显示全部楼层
多义线顶点序号及坐标标注,可输出坐标数据到文本文件。
[php]
(load "xyp_lib");加载通用函数
;|
如果已经下载xyp_lib并放到搜索路径下可以不再下载!
利用以下任何一种方式即可加载和运行通用函数内的所有子程序:
1.在acad.lsp中增加(load"xyp_lib")
2.在每个程序内增加(load"xyp_lib")
3.在command下,输入(load"xyp_lib")
4.在菜单.mnl中增加(load"xyp_lib")
通用函数下载地址:http://www.xdcad.net/forum/showthread.php?s=&threadid=325268
|;
;;--------------------------------------------
;|
;;;功能 : 多义线顶点序号及坐标标注,可输出坐标数据到文本文件。
适用于 POLYLINE 及 LWPOLYLINE 图元 <lmf97231>
多义线编号--起始点随意选
在对管线(多义线)用LISP程序进行自动编号和座标计算时,有时需要编号顺时针递增,有时又需要编号逆时针递增,在选取多义线时,通过选取点来确定编号方向,也就是说当选取左半部分时从左往右开始,选取右半部分时从右往左开始。
2005.02.26 根据<xxming>的要求,修改标注闭合多义线存在的问题
2005.04.29 增加输出坐标数据到文本文件功能
|;
(defun c:test065 ()
  (cmdla0)
  (jzhz)
  (setq        tx1 (ukword 1 "1 2" "\n确定顶点顺序 : 1-正向/2-反向" tx1)
        tx2 (ukword 1 "Y N" "\n是否输出顶点坐标数据:Y-是/N-否" tx2)
  )
  (if (= tx2 "Y")
    (progn
      (setq ffn        (getfiled "\n保存的坐标文件" "坐标" "txt" 1)
            ff        (open ffn "w")
      )
    )
  )
  (command ".undo" "BE")
  (while (setq s1 (entsel "\n\t选择对象<退出> : "))
    (if        (or (= (dxf 0 (entget (car s1))) "POLYLINE")
            (= (dxf 0 (entget (car s1))) "LWPOLYLINE")
        )
      (progn
        (setq eobj (vlax-ename->vla-object (car s1))
              i           -1
        )
        (if (= tx1 "1")                        ;正向
          (progn
            (while
              (setq
                pt0 (vlax-curve-getPointAtParam eobj (setq i (1+ i)))
              )
               (princ)
            )
            (if        (= (dxf 70 (entget (car s1))) 1)
              (setq n (- i 1))
              (setq n i)
            )
            (setq i -1)
            (repeat n
              (setq
                pt0 (vlax-curve-getPointAtParam eobj (setq i (1+ i)))
              )
              (mkla "坐标编号" 1)
              (command "text"
                       "j"
                       "mr"
                       (polar pt0 (* pi 0.75) (* sc 200))
                       (* sc 400)
                       "0"
                       (rtos (+ 1 i) 2 0)
              )
              (mkla "坐标" 3)
              (X_zb pt0)
              (if (= tx2 "Y")
                (wr-tx pt0 ff)
              )
            )
          )
          ;;反向
          (progn
            (while
              (setq
                pt0 (vlax-curve-getPointAtParam eobj (setq i (1+ i)))
              )
               (princ)
            )
            (if        (= (dxf 70 (entget (car s1))) 1)
              (setq n (- i 1))
              (setq n i)
            )
            (setq i -1)
            (repeat n
              (setq
                pt0 (vlax-curve-getPointAtParam eobj (setq i (1+ i)))
              )
              (mkla "坐标编号" 1)
              (command "text"
                       "j"
                       "mr"
                       (polar pt0 (* pi 0.75) (* sc 200))
                       (* sc 400)
                       "0"
                       (rtos n 2 0)
              )
              (setq n (1- n))
              (mkla "坐标" 3)
              (X_zb pt0)
              (if (= tx2 "Y")
                (wr-tx pt0 ff)
              )
            )
          )
        )
      )
    )
  )
  (if (= tx2 "Y")
    (progn
      (close ff)
      (princ (strcat "\n 坐标写至=>" ffn))
    )
  )
  (command ".undo" "E")
  (cmdla1)
)
;;;
(defun wr-tx (point filename / tx)
  (setq        tx (strcat (rtos (+ 1 i) 2 0)
                   ":"
                   (rtos (car point) 2)
                   ","
                   (rtos (cadr point) 2)
                   ","
                   (rtos (caddr point) 2)
           )
  )
  (write-line tx filename)
)[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-1-6 15:14:07 | 显示全部楼层
xyp1964  版主的程序很不错,可惜一次只能选一个物体,而且要是支持POINT的坐标提取就更完美了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-29 02:56 , Processed in 0.294624 second(s), 37 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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