明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: xyp1964

[讨论] 【e派】工具箱函数再揭秘及应用实例

    [复制链接]
 楼主| 发表于 2012-8-5 19:57:04 | 显示全部楼层
本帖最后由 xyp1964 于 2017-11-20 22:00 编辑

  1. ;; xyp-ScaleEntity 缩放实体或选择集 (xyp-ScaleEntity ename point sc)
  2. (defun xyp-ScaleEntity (ename point sc / tp pt i s1 x)
  3.   (setq tp (type ename)
  4. pt (vlax-3D-point (trans point 1 0))
  5.   )
  6.   (cond ((= tp 'ENAME) (vla-scaleentity (xyp-e2o ename) pt sc))
  7. ((= tp 'PICKSET)
  8.     (setq i -1)
  9.     (while (setq s1 (ssname ename (setq i (1+ i))))
  10.       (vla-scaleentity (xyp-e2o s1) pt sc)
  11.     )
  12.   )
  13. ((= tp 'LIST) (foreach x (xyp-ScaleEntity x point sc)))
  14.   )
  15.   ename
  16. )

  17. ;; 应用实例2: 柱子缩放
  18. (defun c:tt2 ()
  19.   (CMDLA0)
  20.   (setq ss (ssget '((0 . "LWPOLYLINE") (8 . "柱")))
  21. l1 '((0 . "Line") (8 . "轴线"))
  22. l2 '((0 . "DIMENSION") (8 . "COLUMN-平法定位"))
  23. i  -1
  24.   )
  25.   (while (setq s1 (ssname ss (setq i (1+ i))))
  26.     (setq p1 (xyp-get-9pt s1 1)
  27.    p1 (xyp-get-Pt2XY p1 -200 -200)
  28.    p9 (xyp-get-9pt s1 9)
  29.    p9 (xyp-get-Pt2XY p9 200 200)
  30.     )
  31.     (if (and (setq ss1 (ssget "c" p1 p9 l1))
  32.       (= (sslength ss1) 2)
  33. )
  34.       (progn
  35. (setq s2  (ssname ss1 0)
  36.        s3  (ssname ss1 1)
  37.        pt  (car (xyp-get-Inters s2 s3 0))
  38.        ss2 (ssget "c" p1 p9 l2)
  39.        ss2(ssadd s1 ss2)
  40. )
  41. (xyp-ScaleEntity ss2 pt 0.5)
  42. (command"dim" "upd" ss2 "" "e")
  43.       )
  44.     )
  45.   )
  46.   (CMDLA1)
  47. )


本帖子中包含更多资源

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

x
发表于 2012-8-5 21:10:13 | 显示全部楼层
十分强大,太好了,作用巨大
 楼主| 发表于 2012-8-5 22:03:02 | 显示全部楼层
柱子缩放扩展

本帖子中包含更多资源

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

x
发表于 2012-8-6 08:38:43 | 显示全部楼层
再次坐享其成,感谢院长坚持不懈的分享
 楼主| 发表于 2012-8-6 09:37:46 | 显示全部楼层
本帖最后由 xyp1964 于 2012-8-6 09:38 编辑
xiaxiang 发表于 2012-8-6 08:38
再次坐享其成,感谢院长坚持不懈的分享


把已经发布的代码完整地整理一下?
发表于 2012-8-6 09:40:31 | 显示全部楼层
本帖最后由 xiaxiang 于 2013-1-8 08:30 编辑
xyp1964 发表于 2012-8-6 09:37
把已经发布的代码完整地整理一下?


除了伪代码以外

本帖子中包含更多资源

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

x

点评

可惜里面错误较多  发表于 2012-8-7 15:11
够快!  发表于 2012-8-6 09:41

评分

参与人数 1明经币 +1 收起 理由
flytoday + 1 能不能整一个柱批量缩放就是上图那个样子源.

查看全部评分

 楼主| 发表于 2012-8-7 15:13:54 | 显示全部楼层
本帖最后由 xyp1964 于 2017-11-20 22:01 编辑

  1. ;; xyp-CircleLineDim 圆轴线标注 (xyp-CircleLineDim s1 dx dy)
  2. (defun xyp-CircleLineDim (s1 dx dy / p1 p9 p0 ss2 s2 s3 s4 p11 p22)
  3.   (setq p1 (xyp-get-9pt s1 1)
  4. p1 (xyp-get-Pt2XY p1 (- dx) (- dy))
  5. p9 (xyp-get-9pt s1 9)
  6. p9 (xyp-get-Pt2XY p9 dx dy)
  7. p0 (xyp-get-dxf 10 s1)
  8.   )
  9.   (if (and (setq ss2 (ssget "c" p1 p9 '((0 . "line"))))
  10.     (= (sslength ss2) 2)
  11.       )
  12.     (progn
  13.       (setq s3 (ssname ss2 0)
  14.      s4 (ssname ss2 1)
  15.       )
  16.       (if (xyp-get-Inters s3 s4 3)
  17. (progn
  18.    (setq p11 (xyp-PerpendicularFoot-Pt2Line p0 s3)
  19.   p22 (xyp-PerpendicularFoot-Pt2Line p0 s4)
  20.    )
  21.    (if (> (distance p0 p11) 0)
  22.      (xyp-Dim-Ali p0 p11 600)
  23.    )
  24.    (if (> (distance p0 p22) 0)
  25.      (xyp-Dim-Ali p0 p22 600)
  26.    )
  27. )
  28.       )
  29.     )
  30.   )
  31. )

;; 实例:圆轴标注

本帖子中包含更多资源

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

x

评分

参与人数 1金钱 +5 收起 理由
巛丸 + 5 又是一些妖孽般的伪源码

查看全部评分

发表于 2012-8-7 15:58:21 | 显示全部楼层
支持,顶~,好好学习
发表于 2012-8-7 21:49:30 | 显示全部楼层
什么都不说,支持
发表于 2012-8-7 23:26:50 | 显示全部楼层
继续收藏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-16 06:01 , Processed in 0.152505 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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