明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: LIHUISHUAN

请教陈大虾,这程序为什么不好用

  [复制链接]
发表于 2004-3-24 14:34:00 | 显示全部楼层
;;注意: 亮顯並不代表物件在最上層,故請用框選去除不想刪除之物件
;;(command "_.erase" SC "")
;;改為
(prompt
"\nType \"R\" to remove objects\nSelect Objects to delete: "
)
(command "_.select" sc pause)
(setq f1 (sslength (ssget "p")))
(command "_.erase" "p" "")
发表于 2004-3-24 14:54:00 | 显示全部楼层
在绘图过程中经常出现重叠线,有时并不是完全重叠的。

本帖子中包含更多资源

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

x
发表于 2004-6-19 11:29:00 | 显示全部楼层
龙龙仔:你能帮编一个多段线的坐标转为TXT文件的程序吗
发表于 2006-12-1 13:50:00 | 显示全部楼层
这个程序对SPLINE没有一点效果,而且短线段完全被长线段覆盖时也没有效果,特别是由3D图转换出来的图效果不是很理想,
发表于 2006-12-1 19:40:00 | 显示全部楼层

好程序。

发表于 2006-12-1 20:13:00 | 显示全部楼层

好程序,龙哥谢谢了!

发表于 2006-12-1 20:20:00 | 显示全部楼层

但是有个问题小弟不明白,想请教一下龙哥!

程序中用到变量:GCHOICE,但是为什么它不需要定义呢?

发表于 2009-1-16 07:19:00 | 显示全部楼层

;;試試這個擦除重复物件
(defun c:duprem (/ f1 sle sa ca ta la lb enta ea typa a1 a2 a3 a4 sc ltest tes)
  (setvar "cmdecho" 0)
  (setq f1 nil
 f1 0
  )        
  (or
    :gchoice
    (setq :gchoice "Set")
  )
  (initget "Set Limits All")        ;
  (setq sle (getkword "\nSelect objects by election set, imits, or ntire database: "))
  (setq sle (getkword (strcat "\nType of selection [Set/Limits/All] <"
         :gchoice ">: "
        )
     )
  )
  (if (not sle)
    (setq sle :gchoice)
    (setq :gchoice sle)
  )

  (cond
    ((= sle "Set")
      (setq sa (ssget))
    )
    ((= sle "Limits")
      (setq sa (ssget "c" (getvar "extmin") (getvar "extmax")))
    )
    ((= sle "All")
      (setq sa (ssget "X"))
    )
  )


  (if (and
 sa
 (= (type sa) 'pickset)
 (not (zerop (sslength sa)))
      )
    (progn
      (setq ca 0
     ta (sslength sa)
     la nil
     lb nil
      )
      (while (< ca ta)
 (setq enta (ssname sa ca)
       ea (cdr (entget enta))
       typa (cdr (assoc 0 ea))
 )          ;
 (if (= typa "POLYLINE")
   (progn
     (setq entb (entnext enta)
    ea (cdr (entget entb))
     )
   )
 )

 (setq a1 (assoc 5 ea))
 (setq a2 (cons 5 ""))
 (setq ea (subst
     a2
     a1
     ea
   )
 )
 (if (wcmatch (getvar "ACADVER") "*15*")
   (progn
     (setq a3 (assoc 330 ea))
     (setq a4 (cons 330 ""))
     (setq ea (subst
         a4
         a3
         ea
       )
     )
   )
 )
 (setq la (cons enta la)
       lb (cons ea lb)
       ca (+ ca 1)
 )
      )
      (setq sc nil
     sc (ssadd)
     ltest lb
      )
      (setq ca 0)
      (setq tes (car ltest)
     ltest (cdr ltest)
     ta nil
     ta (length ltest)
      )
      (while (/= ta 0)
 (if (member tes ltest)
   (progn
     (setq sc (ssadd (nth ca la) sc))
     (prompt "\nFound duplicate entity.")
     (setq f1 (+ f1 1))
   )
 )
 (setq ca (+ ca 1))
 (setq tes (car ltest)
       ltest (cdr ltest)
       ta (length ltest)
 )
      )
      (command "erase" sc "")
      (redraw)
      (prompt "\n")
      (prin1 f1)
      (prompt " duplicate entities erased.")
    )
  )
  (princ)
(prompt "\nType DUPREM to run. Delete duplicate entity routine Ver 2.0 loaded." ) (princ)
)

发表于 2010-6-23 21:19:00 | 显示全部楼层
很想学习但是结构好像有点乱的说。。。。
发表于 2011-1-17 23:52:50 | 显示全部楼层
龙龙仔:能否帮忙修改下你所发的程序,像12楼所说的情况也可以去重的话就好了,十分感激,先谢谢了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-6-8 10:00 , Processed in 0.184414 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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