yoyoho 发表于 2011-5-9 09:45:14

旋转过的图块插入点如何求得?

[求助]各位高手有关于图块插入点如何取得?
本人已用3D建立钢梁(附图中,H1标示)及铁板(附图中,P字开头标示),
并转成俯视图及正视图,欲做批量尺寸标示,
但经多次试着以LISP抓取座标,数值皆不正确,请教高手可有好的解决办法.

198526 发表于 2011-5-9 18:46:03

楼主头痛的问题是不是使用NENTSEL 得到的图元参数,没法提出正确的坐标参数。

yoyoho 发表于 2011-5-9 19:06:53

块本身因为旋转造成座标值不正确
(即当使用指令 ID 测得座标值
,与用LISP点选图块所得到的座标值不同)

masterlong 发表于 2011-5-9 23:46:18

(trans block'dxf10 block-ent 1)

198526 发表于 2011-5-10 08:08:08

2D块我有处理过,用NENTSEL 和 转换矩阵 可以获得正确的坐标点。
3D的就没处理过了,我昨天试了试你图里(P字开头)的坐标我都提不出来。3D的没接触过

yoyoho 发表于 2011-5-10 08:23:42

指令: (setq qq (cdr (assoc 10 (entget (car (entsel))))))
选取物件: (-25332.5 155.5 9242.89)

指令: _-view 输入选项 [列示(?)/删除(D)/正投影(O)/还原(R)/储存(S)/设定(E)/视窗(W)]: _swiso 正在重生模型。

指令: ID
指定点: _m2p 中点的第一点: 中点的第二点:X = 9242.89   Y = -25332.46   Z = 155.50

yoyoho 发表于 2011-5-10 08:30:37

感謝 masterlong 回覆
不過,不了解你的意思
(trans block'dxf10 block-ent 1)???

yoyoho 发表于 2011-5-10 08:45:30

本帖最后由 yoyoho 于 2011-5-10 08:47 编辑

感谢 198526 回覆
图里(P字开头)的坐标可以提出但X,Y,Z值是错位的
LISP==>(-25337.5 155.5 9807.67)
指令: ID==>(9807.67-25337.46 155.50)
指令: (setq qq (cdr (assoc 10 (entget (car (entsel))))))
选取物件: (-25337.5 155.5 9807.67)
指令:
指令: *取消*
指令: ID
指定点:X = 9807.67   Y = -25337.46   Z = 155.50

198526 发表于 2011-5-10 10:05:28

(if (> 3 (length tq))
(SETQ tt (trans pt10 0 1))                                                          ;非块内对象

    (SETQ XX (+
             (* (CAR PT10) (CAR (NTH 0 (NTH 2 TQ))))
             (* (CADR PT10) (CAR (NTH 1 (NTH 2 TQ))))
             (* (CADDR PT10) (CAR (NTH 2 (NTH 2 TQ))))
             (CAR (NTH 3 (NTH 2 TQ)))
             )
          YY (+
             (* (CAR PT10) (CADR (NTH 0 (NTH 2 TQ))))
             (* (CADR PT10) (CADR (NTH 1 (NTH 2 TQ))))
             (* (CADDR PT10) (CADR (NTH 2 (NTH 2 TQ))))
             (CADR (NTH 3 (NTH 2 TQ)))
             )
          tt (trans (LIST XX YY) 0 1)
          )                     ;块内对象
    )
我不知道你LISP的坐标怎么得来的,如果可以用NENTSEL来获得的话,就可以用它获得的转换矩阵得到正确的点。(这是我自己写的一个标注的程序,2D块旋转、镜像后可以取得正确的坐标)。
不知道对你有没有用

198526 发表于 2011-5-10 10:07:10

TQ=(nENTsel "\n选取要标注-对象")
PT10为LISP得到的点坐标
页: [1] 2
查看完整版本: 旋转过的图块插入点如何求得?