乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 40|回复: 19

[编程交流] 将对象复制到新图层

[复制链接]

96

主题

322

帖子

234

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
474
发表于 2022-7-5 15:16:44 | 显示全部楼层 |阅读模式
有没有关于用lisp将对象复制到新层的建议??
 
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-5 15:20:27 | 显示全部楼层
从这里开始:
 
  1. (Command "CopyToLayer")
回复

使用道具 举报

96

主题

322

帖子

234

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
474
发表于 2022-7-5 15:23:58 | 显示全部楼层
请注意thanx
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-5 15:27:59 | 显示全部楼层
你可能需要深入研究一下下面的主题,这个主题还没有讨论很久。
 
http://www.cadtutor.net/forum/showthread.php?79266-复制重命名层
回复

使用道具 举报

96

主题

322

帖子

234

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
474
发表于 2022-7-5 15:30:52 | 显示全部楼层
超过XXXXXXXXXXXXXXXXXXXX很多
回复

使用道具 举报

96

主题

322

帖子

234

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
474
发表于 2022-7-5 15:34:06 | 显示全部楼层
超过XXXXXXXXXXXXXXXXXX
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-5 15:37:30 | 显示全部楼层
尝试此代码,希望您不要删除代码的作者名称。
 
  1. (defun c:Test (/ *error* showdcl on lst ss i sn vl)
  2. ;;;--- Tharwat 25. May. 2013 ---;;;
  3. (or doc
  4.      (setq doc (vla-get-ActiveDocument (vlax-get-acad-object)))
  5. )
  6. (defun *error* (x)
  7.    (if doc
  8.      (vla-endundomark doc)
  9.    )
  10.    (if f
  11.      (progn (close f) (vl-file-delete fn))
  12.    )
  13.    (princ "\n*Cancel*")
  14. )
  15. (defun ShowDcl (/ sn f str dcl_id l lays pos)
  16.    (setq fn (vl-filename-mktemp "dcl.dcl"))
  17.    (setq f (open fn "w"))
  18.    (foreach str
  19.             (list
  20.               "Layers : dialog { label = "Layer List"; fixed_width = true;"
  21.               ": list_box { label = "Select Layer"; key = "layer"; width = 32; multiple_select = true;}"
  22.               ": boxed_row { label = "Action";" ": row {"
  23.               ": button { label = "Accept"; key = "accept"; is_default = true;  }"
  24.               ": button { label = "Cancel"; key = "cancel"; is_cancel = true; }}}}")
  25.      (write-line str f)
  26.    )
  27.    (close f)
  28.    (setq dcl_id (load_dialog fn))
  29.    (if (not (new_dialog "Layers" dcl_id))
  30.      (exit)
  31.    )
  32.    (while (setq l (tblnext "LAYER" (not l)))
  33.      (setq lays (cons (cdr (assoc 2 l)) lays))
  34.    )
  35.    (setq lays (reverse lays))
  36.    (start_list "layer")
  37.    (mapcar 'add_list lays)
  38.    (end_list)
  39.    (action_tile
  40.      "accept"
  41.      "(setq pos (get_tile "layer"))(done_dialog)"
  42.    )
  43.    (action_tile "cancel" "(done_dialog)")
  44.    (start_dialog)
  45.    (unload_dialog dcl_id)
  46.    (if pos
  47.      (foreach n (read (strcat "(" pos ")"))
  48.        (setq lst (cons (nth n lays) lst))
  49.      )
  50.    )
  51. )
  52. (if (and (progn (princ "\n Select Polyline ...")
  53.                  (setq ss (ssget "_:L" '((0 . "*POLYLINE"))))
  54.           )
  55.           (setq on (ShowDcl))
  56.      )
  57.    (progn
  58.      (vl-file-delete fn)
  59.      (vla-StartUndomark doc)
  60.      (repeat (setq i (sslength ss))
  61.        (setq sn (ssname ss (setq i (1- i))))
  62.        (foreach x lst
  63.          (vla-copy (setq vl (vlax-ename->vla-object sn)))
  64.          (vla-put-layer vl x)
  65.        )
  66.      )
  67.      (vla-endundomark doc)
  68.    )
  69. )
  70. (princ "\n Written By Tharwat Al Shoufi")
  71. (princ)
  72. )
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 15:39:39 | 显示全部楼层
下面是一个示例:
  1. ([color=BLUE]defun[/color] c:c2lay ( [color=BLUE]/[/color] inc lay lst obj sel )
  2.    ([color=BLUE]if[/color] ([color=BLUE]setq[/color] sel ([color=BLUE]ssget[/color] [color=MAROON]"_:L"[/color]))
  3.        ([color=BLUE]progn[/color]
  4.            ([color=BLUE]while[/color] ([color=BLUE]setq[/color] lay ([color=BLUE]tblnext[/color] [color=MAROON]"layer"[/color] ([color=BLUE]not[/color] lay)))
  5.                ([color=BLUE]if[/color] ([color=BLUE]zerop[/color] ([color=BLUE]logand[/color] 52 ([color=BLUE]cdr[/color] ([color=BLUE]assoc[/color] 70 lay))))
  6.                    ([color=BLUE]setq[/color] lst ([color=BLUE]cons[/color] ([color=BLUE]cdr[/color] ([color=BLUE]assoc[/color] 2 lay)) lst))
  7.                )
  8.            )
  9.            ([color=BLUE]if[/color] ([color=BLUE]setq[/color] lst (LM:listbox [color=MAROON]"Select Layers to Copy to"[/color] ([color=BLUE]acad_strlsort[/color] lst) [color=BLUE]t[/color]))
  10.                ([color=BLUE]repeat[/color] ([color=BLUE]setq[/color] inc ([color=BLUE]sslength[/color] sel))
  11.                    ([color=BLUE]setq[/color] obj ([color=BLUE]vlax-ename->vla-object[/color] ([color=BLUE]ssname[/color] sel ([color=BLUE]setq[/color] inc ([color=BLUE]1-[/color] inc)))))
  12.                    ([color=BLUE]foreach[/color] lay lst
  13.                        ([color=BLUE]vla-put-layer[/color] ([color=BLUE]vla-copy[/color] obj) lay)
  14.                    )
  15.                )
  16.                ([color=BLUE]princ[/color] [color=MAROON]"\n*Cancel*"[/color])
  17.            )
  18.        )
  19.    )
  20.    ([color=BLUE]princ[/color])
  21. )
  22. ([color=BLUE]vl-load-com[/color]) ([color=BLUE]princ[/color])

 
在运行上述功能之前,您需要下载并加载我的列表框功能。
回复

使用道具 举报

7

主题

143

帖子

136

银币

初来乍到

Rank: 1

铜币
36
发表于 2022-7-5 15:42:37 | 显示全部楼层
 
为塔瓦亲吻
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
438
发表于 2022-7-5 15:47:47 | 显示全部楼层
正如BlackBox所说,COPYTOLAYER。不需要代码。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-14 13:04 , Processed in 1.455324 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表