写一个用于CAD lsp脚本 设置命令为A,实现功能自动将口中所有图元以0,0为基点自动旋转90度 然后以图元中最小x值和y值为基点自动移动到坐标0,0
时间: 2024-03-01 11:52:03 浏览: 23
好的,我理解了你的要求。下面是一个基本的Lisp程序,来实现你的要求:
```
(defun c:A ()
(setq ss (ssget))
(setq minp (list 1000000000.0 1000000000.0))
(repeat (setq i (sslength ss))
(setq obj (ssname ss (setq i (1- i))))
(setq ent (entget obj))
(setq pt1 (cdr (assoc 10 ent)))
(setq pt2 (cdr (assoc 11 ent)))
(setq pt3 (cdr (assoc 12 ent)))
(setq pt4 (cdr (assoc 13 ent)))
(setq pt5 (cdr (assoc 14 ent)))
(setq pt6 (cdr (assoc 15 ent)))
(setq pt7 (cdr (assoc 16 ent)))
(setq pt8 (cdr (assoc 17 ent)))
(setq pt9 (cdr (assoc 18 ent)))
(setq pt10 (cdr (assoc 19 ent)))
(setq pts (list pt1 pt2 pt3 pt4 pt5 pt6 pt7 pt8 pt9 pt10))
(setq angle 90.0)
(setq center (list 0.0 0.0 0.0))
(command "_.rotate" obj center angle)
(setq minp (mapcar 'min minp pts))
)
(command "_.move" minp "0,0")
)
```
请将这段程序保存到一个LSP文件中,然后在AutoCAD中加载这个LSP文件,使用命令"A"即可实现自动旋转和移动的功能。