明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 709|回复: 4

[提问] 求帮忙更改下程序

[复制链接]
发表于 2016-5-17 11:37:41 | 显示全部楼层 |阅读模式
一下程序是在原有位置复制对象到当前图层,先想要功能是复制对象到当前图层,但位置由鼠标指定。

(vl-load-com)
(setvar "CMDECHO" 0)
(defun ALL-LAY (/ LAY I)
  (vlax-for I  (vla-get-layers
   (vla-get-activedocument (vlax-get-acad-object)))
    (setq LAY (cons (vla-get-name I) LAY)))
  (setq LAY (vl-sort LAY '<)))
(defun S-LAY  (/ SS I LAY)
  (setq SS (ssget))
  (setq SS (vla-get-activeselectionset
      (vla-get-activedocument (vlax-get-acad-object))))
  (vlax-for I SS (setq LAY (cons (vla-get-layer I) LAY)))
  (setq LAY (vl-sort LAY '<)))
(defun NS-LAY  (/ LAY MBR)
  (setq LAY (ALL-LAY))
  (foreach MBR (S-LAY) (setq LAY (vl-remove MBR LAY)))
  (setq LAY (vl-sort LAY '<)))
(defun C:11  (/ ss)
  (prompt "复制对象到当前层.\n")
  (setq SS (ssget))
  (command "_.COPY" SS "" "0,0,0" "0,0,0" "")
  (command "_.CHANGE" SS "" "P" "LA" (getvar "CLAYER") "")
  (princ))
发表于 2016-5-17 13:37:21 | 显示全部楼层
(command "_.COPY" SS "" "0,0,0" pause "")
 楼主| 发表于 2016-5-17 13:47:39 | 显示全部楼层
Linhay 发表于 2016-5-17 13:37
(command "_.COPY" SS "" "0,0,0" pause "")

不行的,执行命令后鼠标就捕捉原点,也移动不了 。但还是要谢谢你

点评

(defun C:11 (/ ss ss1) (prompt "复制对象到当前层.\n") (setq SS (ssget)) (command "_.COPY" SS "" pause pause "") (setq ss1 (entlast)) (command "_.CHANGE" ss1 ""   发表于 2016-5-17 15:20
发表于 2016-5-17 19:33:43 | 显示全部楼层
(defun c:11 (/ os p1 p2 ss sn  en en_old)
  (setvar "cmdecho" 0)
  (command ".undo" "be")
  (setq os (getvar "clayer"))
  (prompt "\n复制对象到当前层")
  (setq ss (ssget) sn 0 )
  (setq p1 (getpoint "\n 指定参考点: "))
  (setq p2 (getpoint p1 "\n 指定第二点: "))
  (command "_.COPY" SS "" p1 p2)
  (command "undo" 1)
  (if (= nil ss) (setq ss (ssadd)))
  (while (< sn (sslength ss))
         (setq en (ssname ss sn))  
         (command "copy" en "" p1 p2)
         (setq en_old (entlast))
         (command "change" en_old "" "p" "layer" os "")
         (setq sn (+ 1 sn ))
         )
   (command ".undo" "e")
   (setvar "cmdecho" 1)
  (print)
)
 楼主| 发表于 2016-5-18 10:50:39 | 显示全部楼层
feng83 发表于 2016-5-17 19:33
(defun c:11 (/ os p1 p2 ss sn  en en_old)
  (setvar "cmdecho" 0)
  (command ".undo" "be")

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

本版积分规则

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

GMT+8, 2025-5-20 10:39 , Processed in 0.294195 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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