明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 12300|回复: 72

关于修改块的210码挤出方向问题

  [复制链接]
发表于 2012-4-18 21:41 | 显示全部楼层 |阅读模式
本帖最后由 qq229918602 于 2012-4-18 22:42 编辑

附件如图:
图中的块的群码210的Z值为-1,图元挤出方向与WCS的Z轴不平行,导致码10的坐标与ID测量的值不相符(X值一个为正一个为负),现在要将其改为正值。我的做法是:


命令: (setq e1(entget(car(entsel))))
选择对象: ((-1 . <图元名: -116d18>) (0 . "INSERT") (330 . <图元名: -104308>) (5 . "505")
(100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "PAD") (100 .
"AcDbBlockReference") (2 . "SEG") (10 -5.643 -0.48775 0.0) (41 . 0.001) (42 .
0.001) (43 . -0.001) (50 . 6.28319) (70 . 0) (71 . 0) (44 . 0.0) (45 . 0.0)
(210 0.0 0.0 -1.0))



命令: (setq e2(subst '(210 0.0 0.0 1.0) '(210 0.0 0.0 -1.0) e1))
((-1 . <图元名: -116d18>) (0 . "INSERT") (330 . <图元名: -104308>) (5 . "505") (100 .
"AcDbEntity") (67 . 0) (410 . "Model") (8 . "PAD") (100 . "AcDbBlockReference")
(2 . "SEG") (10 -5.643 -0.48775 0.0) (41 . 0.001) (42 . 0.001) (43 . -0.001)
(50 . 6.28319) (70 . 0) (71 . 0) (44 . 0.0) (45 . 0.0) (210 0.0 0.0 1.0))
补上一句,
命令: (entmod e2) ((-1 . <图元名: -116d18>) (0 . "INSERT") (330 . <图元名: -104308>) (5
. "505") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "PAD") (100 .
"AcDbBlockReference") (2 . "SEG") (10 -5.643 -0.48775 0.0) (41 . 0.001) (42 .
0.001) (43 . -0.001) (50 . 6.28319) (70 . 0) (71 . 0) (44 . 0.0) (45 . 0.0)
(210 0.0 0.0 1.0))
命令后该块的坐标就变位置了(自动镜像到另一边),能否保持位置不变的情况下,修改210码?就好像此贴的http://bbs.mjtd.com/thread-93079-1-1.html  的xyp1964 版主的附件,老师他是什么做到的?
请问各位大大有好的Z轴归零么?最好能实现批量归零。
感谢万分。感谢Andyhon长老!





本帖子中包含更多资源

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

x
发表于 2021-9-20 11:08 | 显示全部楼层
Gu_xl 发表于 2012-4-19 08:56
修正210组码,位置不变
**** 本内容被作者隐藏 ****

这个功能很好,就是文字角度和颠倒调整后位置还变
发表于 2012-4-18 21:54 | 显示全部楼层
subst 之后 得加 EntMod (有些还得补 EntUpd)
以上 请参考旧帖中的讨论

您的例子 210 更新还必得更新 10 之 x 项为正值才可
(10 -5.643 -0.48775 0.0) ==> (10 5.643 -0.48775 0.0)
 楼主| 发表于 2012-4-18 22:14 | 显示全部楼层
Andyhon 发表于 2012-4-18 21:54
subst 之后 得加 EntMod (有些还得补 EntUpd)
以上 请参考旧帖中的讨论

首先感谢你的回答,后补一句(entmod e2)还是没有效果,请问旧帖有地址么?给我参考下,谢谢
发表于 2012-4-18 22:27 | 显示全部楼层
 楼主| 发表于 2012-4-18 22:48 | 显示全部楼层
本帖最后由 qq229918602 于 2012-4-18 22:49 编辑

谢谢长老。打扰了。(entmod e2)后能修改210码,可是命令后该块的坐标就变位置了(自动镜像到另一边),能否保持位置不变的情况下,修改210码?就好像此贴的http://bbs.mjtd.com/thread-93079-1-1.html  的xyp1964 版主的附件,老师他是什么做到的?
发表于 2012-4-18 23:37 | 显示全部楼层
再回2#....
 楼主| 发表于 2012-4-18 23:41 | 显示全部楼层
Andyhon 发表于 2012-4-18 23:37
再回2#....

正在努力阶段,不知道怎样才可以更新10..
发表于 2012-4-18 23:52 | 显示全部楼层
哈哈,灌水?理解一下我上个帖子的回复的第二种方法!
 楼主| 发表于 2012-4-19 00:07 | 显示全部楼层
danxingpen 发表于 2012-4-18 23:52
哈哈,灌水?理解一下我上个帖子的回复的第二种方法!

欢迎高手灌水。呵呵,谢谢你
发表于 2012-4-19 08:56 | 显示全部楼层
修正210组码,位置不变
  1. (defun c:correct210  (/ ss za mat n)
  2.   (setq ss (ssget))
  3.   (if ss
  4.     (repeat (setq n (sslength ss))
  5.       (setq obj (vlax-ename->vla-object (ssname ss (setq n (1- n)))))
  6.       (setq ZA (vlax-safearray->list
  7.                  (vlax-variant-value (vla-get-Normal obj))))
  8.       (setq mat        (vlax-tmatrix
  9.                   (list
  10.                     (list 1 0 (car ZA) 0)
  11.                     (list 0 1 (cadr ZA) 0)
  12.                     (list 0 0 (caddr ZA) 0)
  13.                     (list 0 0 0 1)
  14.                     )
  15.                   )
  16.             )
  17.       (vla-TransformBy obj mat)
  18.       )
  19.     )
  20.   )

点评

谢谢,行了,真是这问题  发表于 2012-9-15 21:58
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-29 02:46 , Processed in 0.242378 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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