明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2130|回复: 5

[已解答] 【未解决】两个矩形或者多边形的形心自动对齐,用于结构基础对齐柱

[复制链接]
发表于 2013-5-15 10:05:12 | 显示全部楼层 |阅读模式
RT,直接看图。

本帖子中包含更多资源

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

x
发表于 2013-5-15 11:41:45 | 显示全部楼层
(defun C:mymy (/ ENT1 ENT2 ENTCENP1 ENTCENP2 ENTPLIST X Y)
  ;;1 [功能] 获取两点的中点坐标
  (defun MJ:MIDPOINT (P1 P2)
    (mapcar '(lambda (X Y) (/ (+ X Y) 2.0)) P1 P2)
  )
  ;;2  获取对象的外边框
  (defun HH:MinMaxPt (ent / MinPt MaxPt)
    ;;(vl-load-com)
    (vla-GetBoundingBox
      (vlax-Ename->vla-Object ent)
      'MinPt
      'MaxPt
    )
    (mapcar 'vlax-safearray->list (list MinPt MaxPt))
  )
  (setq ent1 (car (entsel "\n目标:")))
  (setq entplist (HH:MinMaxPt ent1))
  (setq entcenP1 (MJ:MIDPOINT (car entplist) (cadr entplist)))
  (setq ent2 (car (entsel "\n源:")))
  (setq entplist (HH:MinMaxPt ent2))
  (setq entcenP2 (MJ:MIDPOINT (car entplist) (cadr entplist)))
  (command "_.move" ent1 "" entcenP1 entcenP2)
  (princ)
)
发表于 2013-5-15 12:53:46 | 显示全部楼层
顶,这个不错的程序
 楼主| 发表于 2013-5-21 18:13:50 | 显示全部楼层
对不起,忘记补充了, 能不能批量处理,框选。  
发表于 2013-5-21 18:53:55 来自手机 | 显示全部楼层
批量怎判断哪个与哪个中心对齐,这要有条件吧来自: iPhone客户端
 楼主| 发表于 2013-5-23 09:54:44 | 显示全部楼层
(defun c:xxdq (/
               TCCAD-I               TCCAD-LAYER
               TCCAD-PT1       TCCAD-PT2       TCCAD-PTLIST
               TCCAD-SI               TCCAD-SII       TCCAD-SSGET1
               TCCAD-SSGET2    TCCAD-SSLENGTH
              )
  (setq        tccad-layer
         (tccad-dxf (car (entsel "\n请点取基础所在图层:")) 8)
  )
  (setq tccad-ssget1 (ssget (list (cons 8 tccad-layer))))
  (setq tccad-sslength (sslength tccad-ssget1))
  (setq tccad-i -1)
  (while (setq tccad-si (ssname tccad-ssget1 (setq tccad-i (1+ tccad-i))))
    (setq tccad-ptlist (vertexs tccad-si))
    (setq tccad-pt1 (get_centroid tccad-si))
    (setq tccad-ssget2
           (ssget "wP" tccad-ptlist (list (cons 0 "*LINE")))
    )
    (setq tccad-sii (ssname tccad-ssget2 0))
    (setq tccad-pt2 (get_centroid tccad-sii))
    (vla-move (vlax-ename->vla-object tccad-si) (vlax-3D-point tccad-pt1) (vlax-3D-point tccad-pt2))
    (setq tccad-pt1 nil  tccad-pt2 nil)
    (command "change" tccad-si "" "PROPERTIES" "c" "1" "")
  )
  (princ)
)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-12-23 14:44 , Processed in 0.173763 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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