squareknees 发表于 2022-7-5 19:00:21

添加到现有命令?

我在AutoCAD工作了15年,从未掌握过编写代码。我喜欢我经常发现和使用的lisp例程。
我一直认为copy命令应该有一个rotate选项。我知道在express tools中有“move-copy-rotate”命令,但使用起来很麻烦。
 
 
我记得当你不得不告诉copy命令你想做多个拷贝时,他们添加了额外的信息来自动完成。
 
 
是否可以添加另一层代码,使您可以选择从拾取点旋转复制的对象。如果复制命令是一个矩形阵列,他们不能将环形阵列也添加到其中吗?
 
 
谢谢
方形膝盖

jonathann3891 发表于 2022-7-5 19:16:15

看看这是否适合你。
 
它不花哨,但应该奏效。
 
(defun c:cr ()
(princ "\nCopy, &
Rotate:\n")
(setq ss (ssget))
(command "copy" ss "" "0" "0")(command
"move" ss "" pause pause)(command "rotate" ss "" "@" pause))

Lee Mac 发表于 2022-7-5 19:24:44

不能使用“旋转”命令的“复制”选项吗?
 
Command: ROTATE
Current positive angle in UCS:ANGDIR=counterclockwiseANGBASE=0
Select objects: Specify opposite corner: 1 found
Specify base point:
Specify rotation angle or [Copy/Reference] <0>: C
Rotating a copy of the selected objects.

jonathann3891 发表于 2022-7-5 19:31:52

在我上面发布的代码中添加了一个错误陷阱
 
(defun c:test (/ *error*)

(defun *error* ( msg )
       (if (not (member msg '("Function cancelled" "quit / exit abort")))
         (princ (strcat "\nError: " msg))
       )
       (princ)
   )
(princ "\nCopy & Rotate:\n")
(setq ss (ssget))
(command "copy" ss "" "0" "0")
(command "move" ss "" pause pause)
(command "rotate" ss "" "@" pause)
)
(princ)

squareknees 发表于 2022-7-5 19:39:53

哇,我甚至没有意识到在rotate命令中有一个复制选项。
我想我不习惯阅读命令行,因为我只是做一些我经常做的动作。
现在我只需要记住,如果我想复制并旋转它,我必须使用rotate命令。
非常感谢你,这让我感到困扰了一段时间。我想我需要真正阅读命令行,而不是走马观花!

tombu 发表于 2022-7-5 19:49:54

http://knowledge.autodesk.com/support/autocad/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/AutoCAD-Core/files/GUID-385D1161-6A07-432E-B69B-71C7D19409F5-htm.html
或MOCORO(快速工具)
使用单个命令移动、复制、旋转和缩放选定对象。
 
使用MOCORO作为一种方便的方法,它结合了最常用的修改命令。
 
选项
移动移动对象
复制创建对象的多个副本
旋转旋转对象
动态缩放缩放对象
基点为下一个修改选项指定新基点
撤消撤消上一个操作

Lee Mac 发表于 2022-7-5 19:57:23

 
 
 
 
不客气当然,可以创建一个自定义命令,允许您执行相同的操作,而无需键入“C”作为“复制”,但我更倾向于首先建议一种现成的解决方案(如果合适)。
 

catoscuro 发表于 2022-7-5 20:08:30

我用这个宏制作了一个按钮。
 
 
^C^C_选择\_副本_p、 ;\@_旋转_p、 ;@;n_移动_p、 ;\\;;
页: [1]
查看完整版本: 添加到现有命令?