明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2544|回复: 4

[讨论] 基于中点的文字反转v3源代码解析与测试(支持块、外部参照、UCS)

[复制链接]
发表于 2014-1-9 21:48:30 | 显示全部楼层 |阅读模式
本帖最后由 林霄云 于 2014-1-10 16:10 编辑

文字反转,扩展对外部参照支持
原版本详见基于中点的文字反转v2源代码解析及测试 (支持块内文字 UCS)http://bbs.mjtd.com/forum.php?mo ... 923&fromuid=7303580
在一般情况下是还行得通,但是由于在本质上,未考虑块及外部参照的基点、比例、角度,故v2版本有着天生的缺陷。
在解决这个问题的思路是获取块相应参数,进行转换。
  1. (setq x-scale (cdr (assoc 41 ent))
  2.      y-scale (cdr (assoc 42 ent))
  3.      z-scale (cdr (assoc 43 ent))
  4.      pt-blk (cdr (assoc 10 ent))
  5.      ang-blk(cdr (assoc 50 ent)))
同时,对点列表进行转换,定义转换函数 transform,输入各参数,和需要转换的点列表,返回转换后的点列表。
  1. (defun transform(x-sc y-sc z-sc pt0 ang pt-list / pt-l dist self-ang pt-sc) ;转换函数 Designed by 林霄云 ,2014年1月9日
  2. (setq pt-l '())
  3. (foreach pt pt-list
  4. (setq pt-sc (list (* x-sc (car pt)) (* y-sc (cadr pt)) (* x-sc (caddr pt))))
  5. (setq dist (distance '(0.0 0.0 0.0) pt-sc))
  6. (setq self-ang (angle '(0.0 0.0 0.0) pt-sc ))
  7. (setq pt-l (cons  (polar pt0 (+ ang self-ang) dist) pt-l))
  8. )
  9.   (reverse pt-l)
  10.   );defun
对主函数进行修改,加上转换,如下
  1. (setq pt-list (get-textbox entn ))
  2. (setq pt-list (transform x-scale y-scale z-scale pt-blk ang-blk pt-list));加上转换语句
测试结果详见附图
结论:本文探索出对块与外部参照其内部对象的修改方法,能够准确定位其内部对象。且算法结构经得起推敲。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x

点评

无名块测试失败!  发表于 2014-2-19 12:47
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2014-1-9 22:04:09 | 显示全部楼层
支持,顶一个!
好像不能多选,是么?
 楼主| 发表于 2014-1-9 22:08:03 | 显示全部楼层
阿霸jun 发表于 2014-1-9 22:04
支持,顶一个!
好像不能多选,是么?

多选是另一种逻辑了。多选文字可以,简单的将entsel换成ssget;但是多选块,是无法判断修改快中哪一个对象。
至于多选,由于反转并不是常见操作,是一种修正操作,并不需要支持多选。
发表于 2014-2-18 17:26:52 | 显示全部楼层
没币...我觉得好东西真心奉献的话不要用币购买,因为只要是好东西,版主 大大们在评论的时候都会给币
 楼主| 发表于 2014-2-19 11:55:21 | 显示全部楼层
328302216 发表于 2014-2-18 17:26
没币...我觉得好东西真心奉献的话不要用币购买,因为只要是好东西,版主 大大们在评论的时候都会给币

闲着分析一下,
源代码文件是要的(避免伸手党),有免费的不要的。文中已经介绍了思路与核心代码,也够学习用的了。
没币也是可以变通下载的,比如单独问我发,或者,直接说,给个币,让我下下源码(什么都不做就要,是过分强调自由,便也难见珍惜他人成果)。
另,源码终究是繁杂的,设币限制下载(下载者在下载前必然思索值不值,需不需),可以避免浪费资源、脑力精力等。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-12-22 09:37 , Processed in 0.189369 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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