求位置交换工具
我想图片中的两个选择集,分别以AB两个基点交换位置,有没有这样的插件程序可以实现? 本帖最后由 Andyhon 于 2012-4-8 11:39 编辑
试试如此合用否?
(defun C:test ()
(or
(setq ss (cadr (ssgetfirst)))
(prompt "\n全选要交换位置两个选择集: ")
(setq ss (ssget))
)
(setqpts (acet-geom-ss-extents ss nil)
pb (getpoint "\n 下方基点:")
pa (getpoint "\n 上方基点:")
)
(command "move" ss "" pa pb)
(command "move" ss "R" "w" pb(cadr pts) ""
(polar pb (* pi 0.5) (- (cadr pb) (cadr pa)))
pa
)
)
谢谢楼上的,不能用,提示“no function definition: GETBOXSS” Sorry, 已订正
需 ET 支持
本帖最后由 lshpool 于 2012-4-8 11:38 编辑
Andyhon 发表于 2012-4-8 10:55 http://bbs.mjtd.com/static/image/common/back.gif
Sorry, 已订正
需 ET 支持
试过刚才更新的程序,可以运行,但执行的结果是不对的,交换后错位,我觉得,应该是先选择第一个选择集,然后指定基点,然后选择第二个选择集,然后指定基点,最后用move命令把两个选择集交换
上面的程序,只是适合两个基点位于同一个Y坐标方向
原是依 图片中已有了选择集
已加入 选择集... 试过刚才更新的程序,可以运行,但执行的结果是不对的,交换后错位,我觉得,应该是先选择第一个选择集,然后指定基点,然后选择第二个选择集,然后指定基点,最后用move命令把两个选择集交换
上面的程序,只是适合两个基点位于同一个Y坐标方向
请提供新的样例 本帖最后由 lshpool 于 2012-4-8 14:24 编辑
(defun C:jhwz ()
(princ "\n选择第一个选择集: ")
(setq sa (ssget))
(setq pa (getpoint "\n 指定基点:"))
(princ "\n选择第二个选择集: ")
(setq sb (ssget))
(setq pb (getpoint "\n 指定基点:"))
(command "move" sa "" pa pb)
(command "move" sb "" pb pa)
)
多谢Andyhon我是菜鸟一个,不会编程,但我看了你写的程序,胡乱修改一下,居然可以使用了,再次感谢你,膜拜中
页:
[1]
2