找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: ydf7332462

[求助] [求助]:仅选块(含属性)或标注,让其左右镜像或内外镜像

[复制链接]

已领礼包: 593个

财富等级: 财运亨通

发表于 2003-10-7 17:35:57 | 显示全部楼层
最初由 e2002 发布
[B]

是啊,这是一个问题
前几天建筑的找到我,问我有没有办法解决,我想了一下,没找到方法,再说自己也... [/B]

这样是否可行,先得到要镜像的线,分解-》镜像-》再作新块。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-10-7 18:31:04 | 显示全部楼层
最初由 eachy 发布
[B]写了个简单的块镜像程序(没有错误处理和变量保存等)。尺寸上下镜像麻烦些,有长短腿情况。
[code]
(defun c:test (/ blk inspt ang key obj ptm)
  (setq e (entsel "\n选择属性块: "))
  (initget 128 "L T")...      (vl-cmdf ".mirror" e "" inspt ptm "y")
...[/B]


他在1贴说块的定义点是在边上,不是中间,所以这样镜像就不在原来位置了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2003-10-8 08:00:28 | 显示全部楼层
个人认为,这种和块相关的必须和特定块定义联系起来才会使编程简单化,程序也更有针对性。获取块内所有实体的顺序是和生成(绘制)块时的顺序一致的,这样针对块的操作可以直接用 nth 找到子实体进行各种操作。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-10-9 20:27:16 | 显示全部楼层
eachy12F的用了:
1>单个块可以,但不能批量;dim不能上下镜像;text上下镜像不能循环,如线上镜像到线下,再次镜像不能返回线上
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

发表于 2003-10-9 22:07:35 | 显示全部楼层
最初由 ydf7332462 发布
[B]eachy12F的用了:
1>单个块可以,但不能批量;dim不能上下镜像;text上下镜像不能循环,如线上镜像到线下,再次镜像不能返回线上 [/B]


他写的是适用于块

用这个:
--对文字,如果mirrtext为0,永远向一个方向,因为它自动变过去了
但mirrtext=1时就对了.
--对dim,左右就不一定合我们心意了.
--对直线,假定他的方向为0度.
--对块,就是插入方向.

  1. (defun c:aeo( /  ang e en e-ob mirr p1 p2 os)
  2. (initget "A B")
  3. (setq mirr(getkword(strcat "\n A:上下,B:左右"(if $mirr-aeo "【上下】" "【左右】"))))
  4. (cond((= mirr "A")(setq $mirr-aeo t))((= mirr "B")(setq $mirr-aeo nil)))
  5. (while(setq e(car(entsel)))
  6.        (setq en(entget e)
  7.              e-ob(cdr(assoc 0 en))
  8.        )
  9.       (cond( (and(= e-ob "DIMENSION")(= 1(logand 1(cdr(assoc 70 en)))))
  10.              (setq p1(cdr(assoc 13 en)) p2(cdr(assoc 14 en))
  11.                    ang(angle p1 p2)
  12.              )
  13.            )
  14.            ( (and(= e-ob "DIMENSION")(= 0(logand 1(cdr(assoc 70 en)))))
  15.              (setq p1(cdr(assoc 13 en))ang(cdr(assoc 50 en)))
  16.            )
  17.            (t(setq p1(cdr(assoc 10 en))ang(cdr(assoc 50 en)))
  18.              (if(not ang)(setq ang 0))
  19.            )
  20.      )
  21.     (setq os(getvar"osmode"))(setvar"osmode" 0)
  22.     (command".mirror"e "" p1(polar p1(if $mirr-aeo ang(+ ang(* pi 0.5)))1000) "y")
  23.     (setvar "osmode" os)
  24.   )
  25. (princ)
  26. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-10-9 22:44:53 | 显示全部楼层
有点意思,有没有演示啊?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-10-11 23:04:31 | 显示全部楼层
1>10F,方案是否可按需不显部分或全部属性,text也有好几步,尤其不水平.当然熟能生巧,习惯成自然,异型窗更是了.
2>13F 15F块内文字宜用属性,否则块比改变时,文字难读;不变文字可用常量属性.
3>eachy16F+18F,我觉可以:插入比绝对值同,属性值同,块名前部分也要同:左开-a,右开-b;
4>aeo20F待试;"--对文字但mirrtext=1..."不知可读否--试用后,好!谢了各位
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-26 19:16 , Processed in 0.178574 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表