明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 888|回复: 4

[提问] 形心插块程序UCS问题,求大神帮助解决

  [复制链接]
发表于 2016-4-21 12:56 | 显示全部楼层 |阅读模式
3明经币
论坛上的大神们好,因为是结构新手,用到一个cad的LSP程序,形心插块功能。

在世界坐标系中,程序运行没问题,但是对于地库的倾斜柱网,改变UCS之后,非世界坐标系下,运行程序,块插入点不对,跑得很远,求论坛上各位前辈解决一下,如何解决不同UCS下的问题。。。

演示如下:


源码如下:

(defun c:xxck(/ en ent i obj pt ss s1 s2 s3)
  (vl-load-com)
  (setvar "cmdecho" 0)
  (setq blk1 (cdr (assoc 2 (entget (car (entsel "\n选择要插入的块"))))))
  (if (setq ss (ssget '((0 . "PLINE,LWPOLYLINE,LINE,ARC,CIRCLE,SPLINE,ELLIPSE"))))
    (progn
      (setq i -1)
      (while (setq s1 (ssname ss (setq i (1+ i))))
        (entmakex (entget s1))
        (setq s2 (entlast))
        (command ".region" s2 "")
        (setq s3 (entlast))
        (setq obj (vlax-ename->vla-object s3))
        (setq pt (vlax-safearray->list (vlax-variant-value (vla-get-centroid obj))))
        (entmake (list '(0 . "INSERT") (cons 2 blk1) (cons 10 pt)))
        (entdel s3)
      )

    )
    (princ "\n没有选择对象.")
  )
  (princ)
)
附件: 您需要 登录 才可以下载或查看,没有账号?注册

最佳答案

查看完整内容

(defun c:xxck (/ en ent i obj pt ss s1 s2 s3) (vl-load-com) (setvar "cmdecho" 0) (setq blk1 (cdr (assoc 2 (entget (car (entsel "\n选择要插入的块")))))) (if (setq ss (ssget '((0 . "PLINE,LWPOLYLINE,LINE,ARC,CIRCLE,SPLINE,ELLIPSE")))) (progn (setq i -1) (while (setq s1 (ssname ss (setq i (1+ i)))) (entmakex (entget s1)) (setq s2 (entlast)) (c ...
发表于 2016-4-21 12:56 | 显示全部楼层
(defun c:xxck (/ en ent i obj pt ss s1 s2 s3)
  (vl-load-com)
  (setvar "cmdecho" 0)
  (setq blk1 (cdr (assoc 2 (entget (car (entsel "\n选择要插入的块"))))))
  (if (setq ss (ssget '((0 . "PLINE,LWPOLYLINE,LINE,ARC,CIRCLE,SPLINE,ELLIPSE"))))
    (progn
      (setq i -1)
      (while (setq s1 (ssname ss (setq i (1+ i))))
        (entmakex (entget s1))
        (setq s2 (entlast))
        (command ".region" s2 "")
        (setq s3 (entlast))
        (setq obj (vlax-ename->vla-object s3))
        (setq pt (vlax-safearray->list (vlax-variant-value (vla-get-centroid obj))))
        (entmake (list '(0 . "INSERT") (cons 2 blk1) (cons 10 (trans pt 1 0))))
        (entdel s3)
      )

    )
    (princ "\n没有选择对象.")
  )
  (princ)
)
回复

使用道具 举报

 楼主| 发表于 2016-4-21 14:12 | 显示全部楼层
置顶,不要沉,真心求兄弟们解决这个问题。。
回复

使用道具 举报

发表于 2022-4-28 17:06 | 显示全部楼层
这个问题是怎么解决的?求代码
回复

使用道具 举报

发表于 2022-6-29 16:15 | 显示全部楼层
这个真不错,好用
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-3 06:27 , Processed in 0.358236 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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