明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1404|回复: 6

[讨论] CAD拼图

[复制链接]
发表于 2011-8-9 21:01 | 显示全部楼层 |阅读模式
有没有什么办法,我在拼图的时候,让他只拼指定的图层名称啊?比如:"TK"层,把所有的图都拼起来太慢了``
 楼主| 发表于 2011-8-11 11:16 | 显示全部楼层
浏览的人不少啊,怎么就没人回答呢?难道这个问题不可以实现吗??
发表于 2011-8-11 12:39 | 显示全部楼层
 楼主| 发表于 2011-8-12 10:04 | 显示全部楼层
谢谢Gu_xl斑主,但是貌似我看不懂啊.`
发表于 2011-8-12 14:39 | 显示全部楼层
抱歉,弄不懂您到底想要达到怎样的效果。怎么个拼法?
发表于 2011-8-12 15:33 | 显示全部楼层
回复 vexation 的帖子

  1. ;;;从DWG文件复制图层数据 明经通道 Gu_xl 2011.08.12
  2. (prompt "\r*** 命令:copylayers 从DWG文件复制图层数据 By 明经通道: Gu_xl 2011.08.12***")
  3. (defun c:copylayers  (/   DwgName    DBXDOC     DBXModelSpace
  4.         blocks  blocknames dbxblocknames
  5.         dcfname  file     dc        fl
  6.         ptr  block     norm       pt
  7.         layers  objlst     dbxlayers  i
  8.         all)
  9.   (setq DwgName (GETFILED "选择DWG文件" "" "dwg" 4))
  10.   (if
  11.     (not
  12.       (equal
  13. (strcase DwgName)
  14. (strcase (strcat (getvar "dwgprefix") (getvar "dwgname")))
  15. )
  16.       )
  17.      (progn
  18.        (setq DBXDOC
  19.        (vla-GetInterfaceObject
  20.   (vlax-get-acad-object)
  21.   (if (< (setq acVer (atoi (getvar "ACADVER"))) 16)
  22.     "ObjectDBX.AxDbDocument"
  23.     (strcat "ObjectDBX.AxDbDocument." (itoa acVer))
  24.     )
  25.   ))
  26.        (vla-open DBXDOC DWGNAME)
  27.        (setq DBXModelSpace (vla-get-ModelSpace DBXDOC))
  28.        (vlax-for lay  (vla-get-layers DBXDOC)
  29.   (setq dbxlayers (cons (vla-get-name lay) dbxlayers))
  30.   )
  31.        (setq dcfname (vl-filename-mktemp nil nil ".dcl"))
  32.        (if (setq file (open dcfname "w"))
  33.   (progn
  34.     (write-line
  35.       "copylayers : dialog
  36.               { label = \"选择复制图层 By 明经通道: Gu_xl \";
  37.               spacer;
  38.               : list_box { key = \"layers\"; multiple_select = true;}
  39.               spacer;
  40.               : row
  41.               {
  42.               : button { key = \"selectall\"; label = \"全选\";}
  43.               : button { key = \"clearall\"; label = \"清除选择\";}
  44.               }
  45.               ok_cancel;}"
  46.       file)
  47.     (close file)
  48.     )
  49.   )
  50.        (setq dc (load_dialog dcfname))
  51.        (setq i 0)
  52.        (new_dialog "copylayers" dc)
  53.        (start_list "layers")
  54.        (foreach n  dbxlayers
  55.   (add_list n)
  56.   (if all
  57.     (setq all (strcat all " " (itoa i)))
  58.     (setq all (itoa i))
  59.     )
  60.   (setq i (1+ i))
  61.   )
  62.        (end_list)
  63.        (set_tile "layers" "0")
  64.        (setq ptr nil)
  65.        (action_tile "layers" "(setq ptr $value)")
  66.        (action_tile
  67.   "selectall"
  68.   "(set_tile \"layers\" all) (setq ptr all)")
  69.        (action_tile
  70.   "clearall"
  71.   "(set_tile \"layers\" \"\") (setq ptr nil)")
  72.        (setq fl (start_dialog)
  73.       dc (unload_dialog dc))
  74.        (if (and ptr (= 1 fl))
  75.   (progn
  76.     (setq layers (mapcar '(lambda (x) (nth x dbxlayers))
  77.     (read (strcat "(" ptr ")"))))
  78.     (vlax-for obj  DBXModelSpace
  79.       (if (member (vla-get-layer obj) layers)
  80.         (setq objlst (cons obj objlst))
  81.         )
  82.       )
  83.     (vla-CopyObjects
  84.       dbxDoc
  85.       (vlax-make-variant
  86.         (vlax-safearray-fill
  87.    (vlax-make-safearray
  88.      vlax-vbObject
  89.      (cons 0 (1- (length objlst))))
  90.    objlst
  91.    )
  92.         )
  93.       (vla-get-ModelSpace
  94.         (vla-get-ActiveDocument (vlax-get-acad-object)))
  95.       )
  96.     )
  97.   (princ "\n*Cancel*")
  98.   )
  99.        )
  100.      )
  101.   (princ)
  102.   )

 楼主| 发表于 2011-8-13 18:25 | 显示全部楼层
谢谢斑主大大,可是不能批量自动拼接吗?一个一个点是不是麻烦了点?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-6 19:52 , Processed in 0.197997 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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