fengyu6913 发表于 2024-5-29 16:34:22

单个块拷贝,如何实现先选后执行

本帖最后由 fengyu6913 于 2024-8-20 11:05 编辑

单个块以用块插入点为基准点拷贝,如何实现先选后执行:



(defun c:copybasee (/ent pos)

      (setq ent (entsel ))
      (setq pos(cdr (assoc 10 (entget (car ent)))))
      (command "copybase" pos ent)
         
)

ssyfeng 发表于 2024-5-29 16:34:23

试试这个


xj6019 发表于 2024-5-29 16:47:52

本帖最后由 xj6019 于 2024-5-29 16:49 编辑

这个意思吗

(defun c:NM(/ pos ss)               
        (princ "\n选择对象: ")
        (if (or (setq ss (cadr (ssgetfirst))) (setq ss (ssget)))
                (progn
          (setq pos(cdr (assoc 10 (entget (ssname ss 0)))))
                        (COMMAND "copybase" "non" posSS """PASTECLIP" pause)
                )
        )       
        (princ)
)

fengyu6913 发表于 2024-5-29 17:15:06

xj6019 发表于 2024-5-29 16:47
这个意思吗

(defun c:NM(/ pos ss)               


大佬,刚测了下,系统有提示

xj6019 发表于 2024-5-29 21:12:20

那个要连续的,看这里
(defun c:NM(/ pos ss)               
        (princ "\n选择对象: ")
        (if (or (setq ss (cadr (ssgetfirst))) (setq ss (ssget)))
                (progn
                        (setq pos(cdr (assoc 10 (entget (ssname ss 0)))))               
                        (command ".copy" ss "" "m" pos pause)
                )
        )      
        (princ)
)

fengyu6913 发表于 2024-5-29 22:12:47

本帖最后由 fengyu6913 于 2024-5-29 22:30 编辑

xj6019 发表于 2024-5-29 21:12
那个要连续的,看这里
(defun c:NM(/ pos ss)               
      (princ "\n选择对象: ")

是我没描述清楚,
大佬这个功能用在同一个方件里功能挺好的!



想要的效果是类似 “copybase” (Ctrl+shift+c):
1. 只针对复制单个块,将块的插入点作为命令( “copybase”)的基点
   这样可以省去指定基点的步骤,而且也防止误点附近的其他点
2. 拷贝完以后可以用作另一个文件里再粘贴

现在的问题是:
前面我从几个插件里搬过来拼揍的代码,
只能输入命令后才能选对象,不能像 “copybase” 那样还可以先选对象再输入命令执行带基点拷贝



fengyu6913 发表于 2024-5-29 23:03:06

fengyu6913 发表于 2024-5-29 17:15
大佬,刚测了下,系统有提示

回到家里本本上测试没有提示了

fengyu6913 发表于 2024-5-30 11:25:45

ssyfeng 发表于 2024-5-29 16:34
试试这个

感谢大神再次出手相助

xxyyzzlg 发表于 2024-7-21 16:19:27

ssyfeng 发表于 2024-5-29 16:34
试试这个

感谢大佬分享

阿猪蛋 发表于 2024-7-22 10:27:52

感谢大佬分享
页: [1]
查看完整版本: 单个块拷贝,如何实现先选后执行