mirrtext 设置为1,但是文字是反看的。
这种123 变 321文本信息的镜像,只能用 lisp 才能实现了。
您好,我需要的不是指镜像原本的功能,我想要那种,镜像后的关系,不是以光标经过的两点为中心对称的镜像,而是镜像后的东西是挨着光标经过的两点成镜像的关系哟,和文本镜不镜像没有关系哟,,谢谢您让我学到了文字镜像的参数设置 cq4920 发表于 2020-10-22 18:03
(defun c:tt()
(setq ss (ssget))
大神,您知道函数的链接哪吗 mikewolf2k 发表于 2020-10-22 09:17
8910 怎么处理?
8910是什么意思 哈哈,,专业的人说专业的术语,我都看不懂 cghdy 发表于 2020-10-22 09:14
你这不是常规镜像功能,用论坛上的超级复制可以实现。
好的哟,我搜了一下,超级复制有一个贴子,我试试,谢谢啦 本帖最后由 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 18:56 编辑
指定放置位置前,能加个指定插入点就好用了--------就是镜像复制出,插入另外位置的在镜像后图形的点 cq4920 发表于 2020-10-23 14:46
稍微整理了一下 原理不难
如果 选择 可以不分先后
谢谢大神,辛苦了,我好好研究一下 bai2000 发表于 2020-10-23 17:18
指定放置位置前,能加个指定插入点就好用了
没有看懂呢 明总辛苦了
cq4920 发表于 2020-10-23 14:46
稍微整理了一下 原理不难
如果 选择 可以不分先后
谢谢大神,,大神这个插件代码正解决了我的需求,,谢谢啦
页:
1
[2]