明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1270|回复: 1

[原创]pline线端点坐标由3位变为2位

[复制链接]
发表于 2008-3-11 09:54:00 | 显示全部楼层 |阅读模式
(defun c:zb2()
  (setq a (ssget (list (cons 0 "polyline"))))
  ;各条pline线逐一开始
  (if a
    (progn
      (setq n (sslength a))
      (setq i 0)
      (repeat n
 (setq name (ssname a i))
 ;提取原pline线中信息开始
 (setq zssi (entget name))
 (setq z8 (assoc 8 zssi))
 (setq z39 (assoc 39 zssi))
 (if z39 () (setq z39 (cons 39 0)))
 (setq z40 (assoc 40 zssi))
 (setq z41 (assoc 41 zssi))
 (setq z66 (assoc 66 zssi))
 (setq z67 (assoc 67 zssi))
 (setq z70 (assoc 70 zssi))
 (setq z71 (assoc 71 zssi))
 (setq z72 (assoc 72 zssi))
 (setq z73 (assoc 73 zssi))
 (setq z74 (assoc 74 zssi))
 (setq z75 (assoc 75 zssi))
 ;提取原pline线信息结束
        ;对pline线中每一顶点循环开始
        ;listn为放原pline线顶点坐标表
 (setq listn nil)
        ;w为0组码值,用以控制一条pline循环是否结束
 (setq w "")
 (setq namels name)
 (while (/= w "SEQEND")
   (setq name1 (entnext namels))
   (setq ssi (entget name1))
   (setq w (cdr (assoc 0 ssi)))
   (setq jd 0)
   (if (= w "VERTEX")
     (progn
       (setq zb (assoc 10 ssi))
       (setq x (cadr zb))
       (setq x1 (* 2 (atof (rtos (/ x 2) 2 2))))
       (setq y (caddr zb))
       (setq y1 (* 2 (atof (rtos (/ y 2) 2 2))))
       (setq z (cadddr zb))
       (setq z1 z)
       (setq zb1 (list 10 x1 y1 z1))
       (setq listn (append listn (list zb1)))
     );end progn
   );end if
   (setq namels name1)
 );end while
        ;对pline线中每一顶点循环结束
        ;构造新的pline线开始
 (entdel name)
 (entmake (list (cons 0 "polyline") z8 z39 z40 z41 z66 z70 z71 z72 z73 z74 z75)
 );entmake
 (setq m (length listn))
 (setq j 0)
 (repeat m
   (entmake (list (cons 0 "vertex") (nth j listn))
   );end make
   (setq j (+ j 1))
 );end repeat
 (entmake (list (cons 0 "seqend"))
        );end make
 (setq i (+ i 1))
      );end repeat
    );end progn
  );end if
  ;构造新的pline线结束
  ;各条pline线逐一结束
);end defun
发表于 2020-5-20 14:37:34 | 显示全部楼层
不错的源码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-18 01:37 , Processed in 0.179842 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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