明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1429|回复: 8

选择图中的若干物体,则凡与这些物体相接触或相交的其它物体被自动改到“图层1”。

[复制链接]
发表于 2013-10-21 11:21 | 显示全部楼层 |阅读模式
1明经币
本帖最后由 yunfengning 于 2013-10-23 11:41 编辑

申请一个lsp程序:选择图中的若干物体,则凡与这些物体相接触或相交(即粘连)的其它物体被自动改到“图层1”。

补充上传测试的DWG文件,期待高手出手。
附件: 您需要 登录 才可以下载或查看,没有账号?注册

最佳答案

查看完整内容

针对你所给的图形测试没问题,但对于一些其它内容,比如图块等下边的代码肯定行不通
发表于 2013-10-21 11:21 | 显示全部楼层
本帖最后由 llsheng_73 于 2013-10-23 16:53 编辑

针对你所给的图形测试没问题,但对于一些其它内容,比如图块等下边的代码肯定行不通
  1. (defun SStoES(s / m n e)
  2.   (if s(progn
  3.    (setq n(sslength s)m 0)
  4.    (while(< m n)
  5.      (setq e(if e(append e(list(ssname s m)))(list(ssname s m)))m(1+ m))))
  6.     )e)

  7. (defun C:tt(/ s1 s e f)
  8.   (VL-LOAD-COM)
  9.   (setq la"临时图层1")
  10.   (setq s1(ssget'((0 . "LINE,LWPOLYLINE,POLYLINE,SPLINE,CIRCLE")(62 . 4))))
  11.   (if s1(progn
  12.     (setq s1(SStoES s1)
  13.     s(SStoES(ssget"X"(list(cons -4 "<NOT")(cons 8 la)(cons -4 "NOT>")))))
  14.     (foreach e s1(if(member e s)(setq s(vl-remove e s))))
  15.     (foreach e s1
  16.       (foreach f s
  17.         (if(vlax-invoke(vlax-ename->vla-object e)'IntersectWith(vlax-ename->vla-object f)0)
  18.     (vlax-put-property(vlax-ename->vla-object f)'Layer la))
  19.         )
  20.       )
  21.     )
  22.     )
  23.   )
回复

使用道具 举报

发表于 2013-10-21 13:57 | 显示全部楼层
这些物体 ? 那些?
相接触或相交?  公差容忍度?

上述 得有验证的样本文件 为依据,请上传 (*.Dwg)
回复

使用道具 举报

发表于 2013-10-22 15:20 | 显示全部楼层
联系我QQ496968041
回复

使用道具 举报

发表于 2013-10-23 14:14 | 显示全部楼层
本帖最后由 Andyhon 于 2013-10-23 14:15 编辑

;;; 请依实务修订补强

  1. (defun C:try ()
  2.    (setq ss (ssget '((0 . "Lwpolyline,Circle")))
  3.           i  -1
  4.    )
  5.    (while (setq ee (ssname ss (setq i (1+ i))))
  6.      (setq dat (entget ee))
  7.      (cond
  8.       ((= (dxf 0 dat) "CIRCLE")
  9.        (setq po (dxf 10 dat)
  10.              rr (dxf 40 dat)
  11.              vv 0.0
  12.              aa (/ Pi 64)             ; maybe something
  13.             pts nil
  14.        )      
  15.        (repeat 128          ; 360
  16.          (setq pts (cons (polar po (setq vv (+ vv aa)) rr) pts))
  17.       ))
  18.       (T          ; LwPolyLine
  19.        (setq pts (acet-geom-pline-point-list ee nil))
  20.      ))
  21.      (setq ss2 (ssget "CP" pts))
  22.      (ssdel ee ss2)
  23.      (command "Chprop" ss2 "" "La" "1" "c" "ByLayer" "")
  24.     )
  25. )
回复

使用道具 举报

 楼主| 发表于 2013-10-23 14:34 | 显示全部楼层
CAD2004测试无反应。大侠加油哈。
回复

使用道具 举报

发表于 2013-10-23 14:56 | 显示全部楼层
看来有些功课得补上
1. (defun dxf ....
2. ET (acet-***) 得靠它
论坛上有很多资料 加油
回复

使用道具 举报

 楼主| 发表于 2013-10-24 14:07 | 显示全部楼层
7楼llsheng_73的程序CAD2004测试符合要求,多谢哈。
回复

使用道具 举报

发表于 2013-10-26 10:03 | 显示全部楼层
这样改,图层不是乱了,
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-17 13:07 , Processed in 0.175547 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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