明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: gfxing

[求助]求教各位班主,急!急!急!

  [复制链接]
发表于 2003-11-23 16:20:00 | 显示全部楼层
为什么总是看一半呢,我还问你是出了什么问题,怎么也不回答?是程序运行出错,还是结果不正确,
我测试了,运行一切正常,第一次运行处理了170个点,再继续运行则处理0个点。按此看来程序应该是没有问题的。不过170是否正确,就无从考证了,我不可能去数的。。。
 楼主| 发表于 2003-11-23 18:59:00 | 显示全部楼层
多谢飞哥,飞哥应该已经知道,这是一个处理同一点位有重点的程序,也就是说,170个点中有不是重点的,但也被删除了,您可以将处理过的与未处理过的按不同颜色插到一起,就能看到在被删除的点中,有的点位只有一个点,就说明程序在此处处理错了。希望能再见飞哥!!!
 楼主| 发表于 2003-11-23 19:38:00 | 显示全部楼层
多谢飞哥,飞哥应该已经知道,这是一个处理重点的问题,170个点不错,但其中有不是重点的点也被删除了,您可以将处理过的DWG插到未处理过的DWG中,就可以看到被删掉的点了,而此处只有一个点,没有重点,是程序处理错了。麻烦飞哥,希望能再见飞哥!!!
 楼主| 发表于 2003-11-26 22:21:00 | 显示全部楼层
几天没见飞哥了,是不是最近太忙了,还是希望飞哥及各位高手能帮小弟一把。
鲜花!
发表于 2003-11-27 08:38:00 | 显示全部楼层
你说的重合点,是否是指视觉重合,还是事实重合?
就是说它们的Z坐标是否相同?
发表于 2003-11-27 09:23:00 | 显示全部楼层
经反复测试,发现你的图并没有重合点,即使是视觉上的重合都没有。
测试程序如下,你可以自己画几个点试一下,可以Z值不同,再把两个挪得很近,只要大于你定的0.001,就完全可以。。。

  1. (defun c:chpoint (/ ss len1 i ii si se xx yy ss1 len2 j ent ents xx1 yy1)
  2.   (setvar "cmdecho" 0)
  3.   (setvar "pickbox" 0)
  4.   (command "_.undo" "be")
  5.   (command "pdmode" "0" "zoom" "e" "regen")
  6.   (setq ss (ssget "x" '((0 . "point") (8 . "58"))))
  7.   (setq len1 (sslength ss))
  8.   (setq        i  0
  9.         ii 0
  10.   )
  11.   (while (< i len1)
  12.     (setq si (ssname ss i))
  13.     (setq se (entget si))
  14.     (setq xx (cadr (assoc 10 se)))
  15.     (setq yy (caddr (assoc 10 se)))
  16.     (setq ss1 (ssget "c"
  17.                      (list (- xx 0.001) (- yy 0.001))
  18.                      (list (+ xx 0.001) (+ yy 0.001))
  19.                      (list (cons 0 "point") (cons 8 "58"))
  20.               )
  21.     )
  22.     (if ss1
  23.       (progn
  24.         (ssdel si ss1)
  25.         (setq len2 (sslength ss1))
  26.       )
  27.       (setq len2 0)
  28.     )
  29.     (if        (> len2 0)
  30.       (progn
  31.         (setq j 0)
  32.         (repeat len2
  33.           (setq ent (ssname ss1 j))
  34.           (setq ents (entget ent))
  35.           (setq xx1 (cadr (assoc 10 ents)))
  36.           (setq yy1 (caddr (assoc 10 ents)))
  37.           (if (and (equal xx xx1 0.001) (equal yy yy1 0.001))
  38.             (progn
  39.               (entdel ent)
  40.               (ssdel ent ss)
  41.               (setq len1 (1- len1))
  42.               (setq ii (+ ii 1))
  43.             )
  44.           )
  45.           (setq j (1+ j))
  46.         )
  47.        
  48.       )
  49.     )                               
  50.     (setq i (+ i 1))
  51.     (grtext -2
  52.             (strcat "共有" (itoa len1) ",已处理" (itoa i) "个大量点!")
  53.     )
  54.   )  
  55.   (command "_.undo" "e")
  56.   (setvar "cmdecho" 1)
  57.   (prompt "检查完毕,共有")
  58.   (princ ii)
  59.   (prompt "个重合点!")

  60.   (princ)
  61. )
发表于 2003-11-28 10:27:00 | 显示全部楼层
测试图并没有重合点????

  1. ;;By 龙龙仔(LUCAS)
  2. ;;直接比较会更简单
  3. (defun C:CHPOINT_LAI (/ HOLDECHO SS SS1 SS2 PT LEN)
  4.   (setq HOLDECHO (getvar "cmdecho"))
  5.   (setvar "cmdecho" 0)
  6.   (command "_.undo" "be")
  7.   (setq        SS  (ssget "x" '((0 . "point") (8 . "58")))
  8.         SS1 (ssadd)
  9.         N   0
  10.   )
  11.   (if SS
  12.     (progn
  13.       (repeat (sslength SS)
  14.         (if (member (setq PT (cdr (assoc 10 (entget (ssname SS N)))))
  15.                     SS2
  16.             )
  17.           (ssadd (ssname SS N) SS1)
  18.           (setq SS2 (append SS2 (list PT)))
  19.         )
  20.         (grtext        -2
  21.                 (strcat        "共有"
  22.                         (itoa (sslength SS))
  23.                         ",已处理"
  24.                         (itoa n)
  25.                         "个大量点!"
  26.                 )
  27.         )
  28.         (setq N (1+ N))
  29.               )
  30.       
  31.       (prompt (strcat "\n检查完毕,共有"(itoa (sslength ss1)) "个重合点!"))(command "_.ERASE" SS1 "")
  32.     )
  33.   )
  34.   (command "_.undo" "e")
  35.   (setvar "cmdecho" HOLDECHO)
  36.   (princ)
  37. )
 楼主| 发表于 2003-11-29 20:33:00 | 显示全部楼层
多谢飞哥、龙龙仔!!!
鲜花!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-27 08:47 , Processed in 0.171291 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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