kkkkat 发表于 2010-6-5 11:29:00

[求助]不算镜像的镜像,谁知道怎么做到

我所需要的镜像,就是图像在位置上镜像,当时形状不变,有这样的命令吗

唐伯虎9527 发表于 2021-6-3 16:15:14

Gu_xl 发表于 2010-7-26 16:54


您好,我运行这个代码怎么显示是参数类型错误?

bifenba 发表于 2010-6-5 11:50:00

<p>看不懂</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>足球比分 篮球比分&nbsp; NBA赛程表 即时比分 足球赛程 足球指数 网球比分 开发比分网 阴阳冕 </p>

fpiw 发表于 2010-6-6 11:46:00

如果用自定义对象的话很容易实现

houlinbo 发表于 2010-6-6 17:19:00

<p>设置镜像选项</p>
<p>&nbsp;</p>

danxingpen 发表于 2010-6-21 17:54:00

具体这个镜像有什么作用?发个cad的图纸表明一下镜像前和镜像后的效果!

houlinbo 发表于 2010-6-22 10:03:00

<font style="BACKGROUND-COLOR: #ffffff" face="Verdana">&nbsp;MIRRTEXT命令</font>&nbsp; 可以设置文字的,图形的好像不能吧,&nbsp;&nbsp; 用程序好实现

顽石 发表于 2010-6-22 23:21:00

写个极简单的程序即可实现,CAD中没有直接的命令可以做到。除非红色的是文字,那样的话将MIRRTEXT设为0即可

RUANCT 发表于 2010-6-30 16:29:00

<p>1、先镜像</p>
<p>2、每个实体在插入点自身镜像。</p>
<p>&nbsp;</p>

Gu_xl 发表于 2010-7-26 16:54:00


(defun c:Mr (/ gxl-MidPoint gxl-GetssBox )
(defun gxl-MidPoint (p1 p2)
(if (> 2 (length p1))
      (list (* 0.5 (+ (car p1) (car p2))) (* 0.5 (+ (cadr p1) (cadr p2))) (* 0.5 (+ (caddr p1) (caddr p2))))
      (list (* 0.5 (+ (car p1) (car p2))) (* 0.5 (+ (cadr p1) (cadr p2))))
)
)
(defun gxl-Sel-SS->List (ss / cs_i out)
(if (= (type ss) 'PICKSET)
    (progn
      (setq cs_i 0.0
   out'()
      )
      (repeat (sslength ss)
(setq out (cons (ssname ss cs_i) out))
(setq cs_i (1+ cs_i))
      )
      (setq out (reverse out))
    )
)
)
(defun gxl-getbox (e1 / obj minpoint maxpoint)
(if (= 'ENAME (type e1))
(setq obj (vlax-ename->vla-object e1)) ;转换图元名
    (setq obj e1)
    )
(vla-GetBoundingBox obj 'minpoint 'maxpoint)
   ;取得包容图元的最大点和最小点
(setq minpoint (vlax-safearray->list minpoint)) ;把变体数据转化为表
(setq maxpoint (vlax-safearray->list maxpoint)) ;把变体数据转化为表
;;(command "box" minpoint maxpoint 2)
(setq obj (list minpoint maxpoint))
)
(setq oldosmode (getvar "osmode"))
(setvar "osmode" 0)
(princ "\n选择要镜像的物体:")
(setq ss (ssget))
(if ss
    (progn
      (setq pt1(getpoint "\n指定镜像线的第一点:")
   pt2 (getpoint pt1 "\n指定镜像线的第二点:")
   )
      (command "line" pt1 pt2 "")
    (setq line (entlast))
      (initget 7 "Yes No")
      (setq kd (getkword "\n是否删除源对象?[是<Yes>/否<No>]否<No>"))
      (if (= kd "") (setq kd "No"))
      (setq nn (sslength ss)
   n 0)
      (repeat nn
      (setq pl (GXL-GETBOX (setq en (ssname ss n))))
      (setq pt (GXL-MIDPOINT (car pl) (cadr pl)))
      (setq mpt (vlax-curve-getclosestpointto line pt t))
      (setq ang (angle pt mpt))
      (command "copy" en "" pt (polar pt ang (* 2 (distance pt mpt))))
      
      (if (= kd "Yes") (command "erase" en ""))
(setq n (1+ n))
)
      )
      
    )
(entdel line)
(setvar "osmode" oldosmode)
)

chmenf087 发表于 2010-8-9 10:43:00

简单啊,获取插入点然后一个move足以搞定
页: [1] 2
查看完整版本: [求助]不算镜像的镜像,谁知道怎么做到