明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 961|回复: 11

【求助】如何多个同名块基点,批量插入图元

[复制链接]
发表于 2024-3-13 11:22:28 | 显示全部楼层 |阅读模式
【求助】如何在一个同名块的一个固定位置基点,批量插入多个文字或者其他图元。如图下:

本帖子中包含更多资源

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

x

点评

MXS
顶起来太好用了,函数库里都有  发表于 2024-5-13 23:18

评分

参与人数 1明经币 +1 金钱 +5 收起 理由
MXS + 1 + 5

查看全部评分

发表于 2024-3-13 11:31:02 | 显示全部楼层
本帖最后由 ssyfeng 于 2024-3-13 11:36 编辑

求出文字插入点在当前块插入点的相对位置,再求其它块文字的相对位置,复制一下就行啦
或者直接把这个文字放到块里面,更简单
发表于 2024-3-13 12:06:52 | 显示全部楼层
 楼主| 发表于 2024-3-13 13:41:02 | 显示全部楼层
ssyfeng 发表于 2024-3-13 11:31
求出文字插入点在当前块插入点的相对位置,再求其它块文字的相对位置,复制一下就行啦
或者直接把这个文字 ...

有没有类似代码?
 楼主| 发表于 2024-3-13 13:48:44 | 显示全部楼层
vitalgg 发表于 2024-3-13 12:06
https://www.ixigua.com/7156226718376657438?utm_source=xiguastudio

从3分25秒开始

感谢大师不吝笔墨
 楼主| 发表于 2024-3-15 14:15:36 | 显示全部楼层
vitalgg 发表于 2024-3-13 12:06
https://www.ixigua.com/7156226718376657438?utm_source=xiguastudio

从3分25秒开始

大师,有没有源码借鉴的?
发表于 2024-3-15 18:07:10 | 显示全部楼层
ferious 发表于 2024-3-15 14:15
大师,有没有源码借鉴的?

https://gitee.com/vitalmm/at-pm/blob/main/sign.lsp

以前写的,代码组织结构有点乱
 楼主| 发表于 2024-3-15 20:41:09 | 显示全部楼层
vitalgg 发表于 2024-3-15 18:07
https://gitee.com/vitalmm/at-pm/blob/main/sign.lsp

以前写的,代码组织结构有点乱


有很多自定义函数,
有没有成品的主函数?

本帖子中包含更多资源

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

x
发表于 2024-3-16 05:53:06 | 显示全部楼层




  1. ;; 加载 @lisp 函数库
  2. (progn(vl-load-com)(setq s strcat h"http"o(vlax-create-object (s"win"h".win"h"request.5.1"))v vlax-invoke e eval r read)(v o'open "get" (s h"://""atlisp.""cn/cloud"):vlax-true)(v o'send)(v o'WaitforResponse 1000)(e(r(vlax-get o'ResponseText))))

  3. (defun c:cbb ()
  4.   (@:prompt (string:from-list  '("只支持xyz轴缩放值相同的块,如果不同仅考虑X轴的缩放。"
  5.             "操作步骤:"
  6.             "1、选中要复制的图形,"
  7.             "2、选择源块"
  8.             "3、选择一个或多个目标块"
  9.             ) "\n"))
  10.   (@:prompt "请选择要复制的图形:")
  11.   (setq ents(pickset:to-list (ssget)))
  12.   (@:prompt "请选择源块:")
  13.   (setq blk-src(car (pickset:to-list(ssget ":E:S" '((0 . "insert"))))))
  14.   (@:prompt "请选择目标块:")
  15.   (if (eq (vla-get-isdynamicblock (e2o blk-src)) :vlax-true)
  16.       (progn
  17.         (setq blk-targets
  18.               (vl-remove-if-not
  19.                (function(lambda(x)
  20.                           (eq
  21.                            (vla-get-effectivename (e2o x))
  22.                            (vla-get-effectivename (e2o blk-src)))))
  23.                (pickset:to-list
  24.                 (ssget (list '(0 . "insert")
  25.                              (cons 2 (strcat (entity:getdxf blk-src 2)
  26.                                              ",`**"))
  27.                              ))))))
  28.     (setq blk-targets
  29.           (pickset:to-list
  30.            (ssget (list '(0 . "insert")
  31.                         (cons 2 (entity:getdxf blk-src 2)))))))
  32.    
  33.   (setq pt-base (entity:getdxf blk-src 10))
  34.   (setq rotate-base (entity:getdxf blk-src 50))
  35.   (setq scale-base (entity:getdxf blk-src 41));; '(41 42 43)))
  36.   ;; 计算
  37.   ;; 生成新图形
  38.   (foreach
  39.    blk-target blk-targets
  40.    (setq pt-target (entity:getdxf blk-target 10))
  41.    (setq rotate-target (entity:getdxf blk-target 50))
  42.    (setq scale-target (entity:getdxf blk-target 41));; '(41 42 43)))
  43.    (mapcar
  44.     '(lambda(x)
  45.        (vla-move x (point:to-ax pt-base)
  46.                  (point:to-ax pt-target))
  47.        (vla-scaleentity x (point:to-ax pt-target)
  48.                   (/ scale-target scale-base))
  49.        (vla-rotate x (point:to-ax pt-target)
  50.                    (- rotate-target rotate-base)))
  51.     (mapcar 'vla-copy (mapcar 'e2o ents)))
  52.    ))



 楼主| 发表于 2024-3-16 08:23:58 | 显示全部楼层

感谢大师,这个要VIP的吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 04:25 , Processed in 0.213740 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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