明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1141|回复: 2

求助,meflying大哥请进

[复制链接]
发表于 2005-12-1 09:10 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2005-12-3 10:30:38 编辑

求助:二维多段线和多段线有什么区别,两者之间能不能互相转换(以及批量转换)?

meflying给我编的这个程序,二维多段线为什么就不能改?

改多段线方向:

(defun c:Rev(/ pl ents i m ptlst ptlst2 item)
  (setq pl (car (entsel "选择Pline...")))
  (setq ents (entget pl))
  (setq i 0)
  (setq ptlst (reverse (member (assoc 10 ents) ents)))
  (setq ptlst (cdr (member (assoc 10 ptlst) ptlst)))
  (repeat (/ (length ptlst) 4)
    (setq ptlst2 (append ptlst2 (list (list (nth i ptlst) (nth (+ i 1) ptlst) (nth (+ i 2) ptlst) (nth (+ i 3) ptlst)))))
    (setq i (+ i 4))
  )
  (setq ptlst2 (mapcar '(lambda(x) (subst (cons 42 (- (cdr (assoc 42 x)))) (assoc 42 x) x)) ptlst2))
  (setq ptlst2 (apply 'append ptlst2))
  (setq i 0 m t ptlst nil)
  (while m
    (setq item (nth i (reverse ents)))
    (setq ptlst (append ptlst (list item)))
    (if (= (car item) 10) (setq m nil))
    (setq i (1+ i))
  )
  (setq ptlst (reverse (subst (cons 42 (- (cdr (assoc 42 ptlst)))) (assoc 42 ptlst) ptlst)))
  (setq ptlst2 (cons (car ptlst) ptlst2))
  (setq ptlst2 (append ptlst2 (cdr ptlst)))
  (setq i 0 m (vl-position (assoc 10 ents) ents) ptlst nil)
  (repeat m
    (setq ptlst (append ptlst (list (nth i ents))))
    (setq i (1+ i))
  ) 
  (command "_.undo" "be")
  (entmod (append ptlst ptlst2))
  (command "_.undo" "e")
)

发表于 2005-12-1 21:58 | 显示全部楼层
解铃还须系铃人
 楼主| 发表于 2005-12-4 14:30 | 显示全部楼层

meflying大哥抽空帮我看看,谢谢!

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

本版积分规则

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

GMT+8, 2024-5-3 09:49 , Processed in 0.478284 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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