明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 7121|回复: 24

关于块插入点在ucs=用户自定义和ucs=w时坐标点乱象问题

  [复制链接]
发表于 2011-7-21 23:54:02 | 显示全部楼层 |阅读模式
本帖最后由 啵浪鼓 于 2011-7-21 23:57 编辑

当初建块时采用ucs坐标系=用户自定义,当ucs=w时如何得到这些非建立在ucs=w时所建的块

在ucs=w时,所得到的块坐标系:

cad自带命令list得到的结果:
于 点, X=  10.0000  Y=  10.0000  Z=   0.0000

查看10的像素得到的坐标:
(10 6601.19 -691.005 0.0)

正确做法是插块时必须以ucs=w时,方可插入,但实际很多图档部分块当初插入块时,未将ucs设为w,造成10的像素非真实的点,

如何查找这些非世界坐标ucs=w时插入的块???
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2023-9-30 12:09:45 | 显示全部楼层
cash1331 发表于 2011-10-27 12:31
你们怎么这么复杂。。。我用一个命令就使插入点正确,是不是碰巧,,,,

(defun C:234 ()      

高手啊,解决了我插入文字时,文字离插入点很远的问题
发表于 2020-5-27 23:35:50 | 显示全部楼层
高飞版主确实是牛,慢慢研究其中奥秘
发表于 2011-7-22 00:09:39 | 显示全部楼层
本帖最后由 caoyin 于 2011-7-22 00:23 编辑

(vlax-get
(vla-item
(vla-get-blocks
   (vla-get-ActiveDocument (vlax-get-acad-object))
)
(vla-get-name
   (vlax-ename->vla-object
     (car (entsel "\n选择块: "))
   )
)
)
'Origin
)
-------------------------------------------
AutoLISP:
(cdr (assoc 10 (tblsearch  "BLOCK" (cdr (assoc 2 (entget (car (entsel "\n选择块: "))))))))
 楼主| 发表于 2011-7-22 01:39:10 | 显示全部楼层
本帖最后由 啵浪鼓 于 2011-7-22 01:47 编辑

感谢 C版 这么夜了还在忙于解答疑难杂症,乐此不疲!

C版的方法好像不能解决ucs/wcs的问题!

有如:
图中有些块是基于ucs建立,有些块是基于wcs建立,我们做图原则以wcs为原则,所以要将ucs建的块找出来???
图片中,块1,块2,块4为wcs原则下创建的,所以它的坐标点是正确的
图片中,块3是亮点,基于ucs时建立的块,10的组码对于wcs模式下看它是不真实的,所得的坐标 X=19514.840,Y=2766.420也是错误!

让我在wcs模式下得到ucs块的正确坐标点来啊啊啊
解决不同坐标系的块方法有没有啊,有没有!!!

本帖子中包含更多资源

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

x
发表于 2011-7-22 08:41:13 | 显示全部楼层
本帖最后由 highflybir 于 2011-7-22 09:06 编辑

发给图上来吧。再详细说明一下。暂时不清楚你说的UCS仅仅是平移了原点的uCS,还是有角度旋转的UCS。如果仅仅是平移了原点的UCS,那你是无法区分做图块时用的是UCS还是WCS.

例如下面:你能区分么?

UCS下做的块
Command: ee
Select object: ((-1 . <Entity name: 7ec2d508>) (0 . "INSERT") (330 . <Entity
name: 7ed10cf8>) (5 . "BC4D9") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8
. "0") (100 . "AcDbBlockReference") (2 . "kkk12") (10 134418.0 -100617.0 0.0)
(41 . 1.0) (42 . 1.0) (43 . 1.0) (50 . 0.0) (70 . 0) (71 . 0) (44 . 0.0) (45 .
0.0) (210 0.0 0.0 1.0))

WCS下做的块
Command: ee
Select object: ((-1 . <Entity name: 7ec2d538>) (0 . "INSERT") (330 . <Entity
name: 7ed10cf8>) (5 . "BC4DF") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8
. "0") (100 . "AcDbBlockReference") (2 . "kkk11") (10 134418.0 -100617.0 0.0)
(41 . 1.0) (42 . 1.0) (43 . 1.0) (50 . 0.0) (70 . 0) (71 . 0) (44 . 0.0) (45 .
0.0) (210 0.0 0.0 1.0))

另外,尚不清楚你说的是它们的块定义,还是块插入?
块定义:
UCS下做的块
Command: (entget (tblobjname "block" "kkk12"))
((-1 . <Entity name: 7ec2d4f0>) (0 . "BLOCK") (330 . <Entity name: 7ec2d4e8>)
(5 . "BC4D6") (100 . "AcDbEntity") (67 . 0) (8 . "0") (100 . "AcDbBlockBegin")
(70 . 0) (10 0.0 0.0 0.0) (-2 . <Entity name: 7ec2d500>) (2 . "kkk12") (1 . ""))

WCS下做的块
Command: (entget (tblobjname "block" "kkk11"))
((-1 . <Entity name: 7ec2d520>) (0 . "BLOCK") (330 . <Entity name: 7ec2d518>)
(5 . "BC4DC") (100 . "AcDbEntity") (67 . 0) (8 . "0") (100 . "AcDbBlockBegin")
(70 . 0) (10 0.0 0.0 0.0) (-2 . <Entity name: 7ec2d530>) (2 . "kkk11") (1 . ""))

 楼主| 发表于 2011-7-22 22:31:40 | 显示全部楼层
回复 highflybir 的帖子

当初建块时 块2/块3/块5 是基于ucs建立的,已无法获得当初建块的"INSBASE"的值
我们的图要求是wcs模式运行,而wcs下获得的ucs块的坐标就不是真实的了
如同上图中,2的坐标应该是X=10,Y=10,而程序获得10的组码得到的是X=1085.060,Y=821.460

问: 如何在wcs下获得ucs块的真实坐标
   或者得到ucs块基于目前的ucs坐标(如上图标注的那样得到的值)
   或者找到ucs块并在ucs块的中心做一个标志,让用户知道哪些是ucs块

本帖子中包含更多资源

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

x
发表于 2011-7-22 23:49:24 | 显示全部楼层
是有点头痛,块我们应用很少,还好找到以前版主的留下的高招
;;;获得块中的圆的圆心,选择时要直接点取块中的圆才可以
(setq cp (cdr (assoc 10 (entget (car (setq nel (nentsel "\n选择块中圆:")))))))
(setq cp (polar cp (angle '(0 0 0) (setq pt (cdr (assoc 10 (entget (last (last nel))))))) (distance  '(0 0 0) pt)))
;;;CP就是圆心坐标
发表于 2011-7-23 01:42:15 | 显示全部楼层
你这些图看起来都是插入点不在圆心上。是不是所有的图块插入点应该在圆心上?如果是的话,应该很好判断。只要判断插入点不在圆心上就可以了,就能找出所有的。
 楼主| 发表于 2011-7-24 00:06:45 | 显示全部楼层
本帖最后由 啵浪鼓 于 2011-7-24 00:08 编辑

回复 highflybir 的帖子

是的,所有块插入点都应在圆中心,若偏离圆中心就是所说的坏块(程序本是以中心插入,由于那段vlx加密程序未在程序前加上ucs=w,导致用户插入块时未将ucs还原成wcs,导致块的中心不在圆中心)

高飞版主 很好很强大,美中不足的是:
图档中的块2为正常块组码为(41 . 1),结果是正确 (10.0 10.0 0.0)
图档中的块3为镜向块组码为(41 . -1.0),应为(35.0 15.0 0.0)得到的结果为(-2115.13 15.0 0.0)

因为图中有些ucs块不单是镜向块/旋转块/旋+镜向块 等等,结果就不正确了!

还有最大缺撼就是没法批量选,如果单选的话,一个图档通常有300个左右块,图档有500多个,人工单选那就不现实了额!  泪奔啊啊啊!

发表于 2011-7-26 20:59:28 | 显示全部楼层
请教 highflybir 高手也可以的!!!!
 楼主| 发表于 2011-7-27 22:25:04 | 显示全部楼层
回复 jxphklibin 的帖子

求真相,求wcs求ucs块坐标啊啊啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-17 07:19 , Processed in 0.179314 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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