sammy 发表于 2024-5-20 14:17:43

图形复制并对齐【已修正】

本帖最后由 sammy 于 2024-5-29 23:29 编辑

(defun c:Q1 (/ ss ssCopy basePoint1 basePoint2 angBase angTarget)
(princ "\n实体操作--复制并旋转")
(if (setq ss (ssget))
(progn
(setvar "Autosnap" 63)
(setvar "POLARMODE" 2)
(command "POLARANG" "45")

(if (and
      (setq basePoint1 (getpoint "\n选择基点1: "))
      (setq angBase (getangle basePoint1 "\n选择基点2确定原始角度: "))
      )
    (if (setq targetPoint1 (getpoint "\n选择目标点1: "))
      (if (setq angTarget (getangle targetPoint1 "\n选择目标点2确定目标角度: "))
      (progn
          (command ".COPY" ss "" basePoint1 targetPoint1)
          (setq ssCopy (ssget "P"))
          (command "rotate" ssCopy "" targetPoint1(* (/ (- angTarget angBase) pi) 180))
          (princ "\n选中图形已复制并旋转到目标位置。")
      )
      (progn
          (command ".COPY" ss "" basePoint1 targetPoint1)
          (setq ssCopy (ssget "P"))
          (princ "\n选中图形已复制到目标位置,但未指定目标角度。")
      )
      )
      (princ "\n未选择目标点。")
    )
)
)
(princ "\n未选择任何图形。")
)
(princ)
)

抛砖引玉一下吧,到最后一部旋转新选择集好像有问题,但是看代码又没有问题。
希望大神帮忙修改一下。
代码参考了:

http://bbs.mjtd.com/forum.php?mo ... 743&fromuid=7330425


sammy 发表于 2024-5-20 21:14:12

本帖最后由 sammy 于 2024-5-20 21:16 编辑

程序已经优化好了,现在可以正常使用。
不收币了,请大家帮忙投下免费的币。

kwok 发表于 2024-5-21 12:53:35

;简单的对复制并对齐
(defun c:tt (/ ss p1 p2 p3 p4)
    (command "_.undo" "be")
(if(setq ss (ssget ":L"))
   (progn
(setq p1 (getpoint "\n选择基点1: ")
      p2 (getpoint p1 "\n选择基点2: "))
(command ".copy"ss "" "non"p1 "non"p1)
(setq p3 (getpoint "\n目标基点1: ")
      p4 (getpoint p3 "\n目标基点2: "))
(command "_.ALIGN" ss "" "non"p1 "non"p3"non"p2 "non"p4 "" "" )
)
)
      (command "_.undo" "_e")
    (princ)
)

sammy 发表于 2024-5-20 14:19:44

上午看到有人问如何对齐并复制,尝试写了一个代码,但是运行到最后一步对选择集的选取有错误,不知道该如何修改了,请高手路过帮忙解答一下

你有种再说一遍 发表于 2024-5-20 16:37:57

遍历每个图元再旋转,旋转时候用vla函数.

start4444 发表于 2024-5-20 16:47:09

(setq ssCopy (ssget "P"))=ss,要用entnext 函数取得copy后的新选集

guosheyang 发表于 2024-5-20 17:49:23

本帖最后由 guosheyang 于 2024-5-20 18:00 编辑

@ sammy
看下这个能否满足你的要求

guosheyang 发表于 2024-5-20 18:03:27





bai2000 发表于 2024-5-20 18:54:50

"geom3d"是什么?

水洗可口可乐 发表于 2024-5-21 10:54:57

guosheyang 发表于 2024-5-20 18:03


17#楼 的
cq4920 贴出的,跟你的有点类似

guosheyang 发表于 2024-5-21 12:49:09

水洗可口可乐 发表于 2024-5-21 10:54
17#楼 的
cq4920 贴出的,跟你的有点类似

不一样我那个是调用的对齐命令 他那个是个估计是grread
页: [1] 2
查看完整版本: 图形复制并对齐【已修正】