999999 发表于 2020-10-23 09:16:38

mokson 发表于 2020-10-22 08:00
mirrtext 设置为1,但是文字是反看的。
这种123 变 321文本信息的镜像,只能用 lisp 才能实现了。

您好,我需要的不是指镜像原本的功能,我想要那种,镜像后的关系,不是以光标经过的两点为中心对称的镜像,而是镜像后的东西是挨着光标经过的两点成镜像的关系哟,和文本镜不镜像没有关系哟,,谢谢您让我学到了文字镜像的参数设置

999999 发表于 2020-10-23 09:17:46

cq4920 发表于 2020-10-22 18:03
(defun c:tt()

(setq ss (ssget))


大神,您知道函数的链接哪吗

999999 发表于 2020-10-23 09:18:31

mikewolf2k 发表于 2020-10-22 09:17
8910 怎么处理?

8910是什么意思   哈哈,,专业的人说专业的术语,我都看不懂

999999 发表于 2020-10-23 09:19:08

cghdy 发表于 2020-10-22 09:14
你这不是常规镜像功能,用论坛上的超级复制可以实现。

好的哟,我搜了一下,超级复制有一个贴子,我试试,谢谢啦

cq4920 发表于 2020-10-23 14:46:10

本帖最后由 cq4920 于 2020-10-23 14:51 编辑

999999 发表于 2020-10-23 09:17
大神,您知道函数的链接哪吗
稍微整理了一下 原理不难

如果 选择 可以不分先后
再加个预览就更beautiful啦
有兴趣就再加个判断,如果不输入插入点,直接按空格,就原地翻转 ,如果输入A或者其他就垂直翻转,

(defun c:tt(/ SS WK P1 P2 P3 P4 PT1 SS2)
(MC:be1)
(setq ss (ssget))
      (mc:Wk ss)
      (setq wk (entlast)) ;获取选择集外框图元名
         (progn
                        (vl-load-com)
                        (vla-getboundingbox (vlax-ename->vla-object wk) 'minpoint 'maxpoint)
                        (setq p3 (vlax-safearray->list maxpoint)
                              p1 (vlax-safearray->list minpoint))
                        (setq p2 (list (car p3) (cadr p1)))
                        (setq p4 (list (car p1) (cadr p3)))
      (COMMAND "_.erase"wk "")
                     )   
(command "_.mirror" ss "" P2P3 "n" "")            
(setq ss2 (last_ent WK));;论坛里的一个函数
   (setvar "OSMODE" os)
( setq pt1 (getpoint"\n指定放置位置"))
(command "_.MOVE" ss2 "" p2 pt1)
(MC:be11)      
)

;;39外框
(defun mc:wk (ss / oldos oldlalst n obj minx miny maxxmaxy pt1
         pt2 pt3 pt4)
(setq oldos (getvar "osmode"))
(setq oldla (getvar "clayer"))
(setvar "cmdecho" 0)
(setvar "osmode" 0)
(repeat (setq n (sslength ss))
    (setq obj (vlax-ename->vla-object (ssname ss (setq n (1- n)))))
    (vla-getboundingbox obj 'x 'y)
    (setq lst (cons (vlax-safearray->list y)
      (cons (vlax-safearray->list x) lst)
      )
    )
)
(setqminx (car (vl-sort (mapcar 'car lst) '<))
miny (car (vl-sort (mapcar 'cadr lst) '<))
maxx (car (vl-sort (mapcar 'car lst) '>))
maxy (car (vl-sort (mapcar 'cadr lst) '>))
)
(setq pt1 (list minx miny))
(setq pt2 (list maxx miny))
(setq pt3 (list maxx maxy))
(setq pt4 (list minx maxy))
      (entmake (list '(0 . "LWPOLYLINE") '(100 . "AcDbEntity") '(100 . "AcDbPolyline") '(90 . 4) '(70 . 1) (cons 10 pt1) (cons 10 pt2) (cons 10 pt3) (cons 10 pt4)))
(setvar "osmode" oldos)
(setvar "clayer" oldla)
(setvar "cmdecho" 1)
(princ)
)
;;40最后生产出的图元
(defun last_ent (en / ss)
      (if en
                (progn
                        (setq ss (ssadd))
                        (while (setq en (entnext en))
                              (if (not (member (cdr (assoc 0 (entget en)))
                                                                         '("ATTRIB" "VERTEX" "SEQEND")
                                                               )
                                                )
                                        (ssadd en ss)
                              );if
                        );while
                        (if (zerop (sslength ss)) (setq ss nil))
                        ss
                );progn
                (ssget "_x")
      );if
)


;准备:控制回显和输入,捕捉,当前颜色
(defun MC:be1()
      (setq cm (getvar "cmdecho")
                os (getvar "osmode"))
      (setvar "CMDECHO" 0)
      (setvar "OSMODE" 0)
      (command "color" "bylayer")
      (command "_undo" "be"))      

(defun Mc:be11 ()
      (setvar "orthomode" 0)
(command "_undo" "e")
(setvar "OSMODE" os)
      (setvar "cmdecho" cm))

bai2000 发表于 2020-10-23 17:18:26

本帖最后由 bai2000 于 2020-10-23 18:56 编辑

指定放置位置前,能加个指定插入点就好用了--------就是镜像复制出,插入另外位置的在镜像后图形的点

999999 发表于 2020-10-23 18:31:28

cq4920 发表于 2020-10-23 14:46
稍微整理了一下 原理不难

如果 选择 可以不分先后


谢谢大神,辛苦了,我好好研究一下

999999 发表于 2020-10-23 18:31:53

bai2000 发表于 2020-10-23 17:18
指定放置位置前,能加个指定插入点就好用了

没有看懂呢

czb203 发表于 2020-10-25 09:32:30

明总辛苦了

999999 发表于 2020-12-16 08:37:25

cq4920 发表于 2020-10-23 14:46
稍微整理了一下 原理不难

如果 选择 可以不分先后


谢谢大神,,大神这个插件代码正解决了我的需求,,谢谢啦
页: 1 [2]
查看完整版本: (求助)关于CAD原始的镜像功能的想法,求路过的大神看能不能实现