明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 5798|回复: 42

[源码] 圆心插入块

[复制链接]
发表于 2015-12-29 23:11 | 显示全部楼层 |阅读模式
本帖最后由 荒野孤行 于 2015-12-29 23:16 编辑

此程序对于画上下治具套合孔位特别好用。(如果之前都是用块来画孔位的则不需考虑此程序,直接修改图块即可。这个是用来收拾老设计员的烂摊子的),演示见图片吧!演示中用到了WDY工具箱(若需下载,请见我的个人签名)中的命令(如命令“XS”,即“图层显示”功能)

若是需在交点插块(块的基点最好在块内图元的中心,否则插入到圆心位置后是偏的,可以自行测试),之前亦发表在论坛上了,网址:http://bbs.mjtd.com/thread-168426-1-1.html
若需在曲线固定点/顶点上插块图块,按照这两个自行修改吧!
不废话了,丢出源码:


;;;圆心插块
(princ "\n调用命令:ck\n")
(defun c:ck (/ ss yuanxinlist)
  (setvar "cmdecho" 0)
  (vl-load-com)
  (setvar "osmode" 15359)
  (princ
    "\n★功能:在批量选取的圆的圆心处插入块。\n提示:在执行此功能前请确定图块的基点是否在其

中心位置,否则会出现插入点偏位现象。\n"
  )
  (princ "\n请选择要在圆心处插入块的圆或圆弧:")
  (command "undo" "be")
  (if (not (setq ss (ssget '((0 . "ARC,CIRCLE")))))
    (progn (princ "\n提示:未选取图元,程序退出。\n") (exit))
  )
  (setq i 0)
  (repeat (sslength ss)
    (setq ent          (entget (ssname ss i))
          yuanxin (cdr (assoc 10 ent))
    )
    (setq yuanxinlist (cons yuanxin yuanxinlist))
    (setq i (1+ i))
  )
  (setq atcad (vlax-get-acad-object))
  (setq acaddocument (vla-get-activedocument atcad))
  (setq mspace (vla-get-modelspace acaddocument))
  (while
    (progn (setq blockent     (entsel "\n请选择要插入至交点处的图块:")
                 blockentname (car blockent)
           )
           (not        (if (= blockent nil)
                  nil
                  (= (cdr (assoc 0 (entget blockentname))) "INSERT")
                )
           )
    )
     (princ
       "\n提示:选取的不是图块或未选取任何图元,请重新选取:"
     )
  )
(setq blockname (cdr (assoc 2 (entget blockentname))))
  (initget 6)
  (if (not (setq bili (getreal "\n插入比例<1.0>")))
    (setq bili 1.0)
  )
  (setvar "osmode" 0)
  (foreach pt yuanxinlist
    (vla-insertblock
      mspace
      (vlax-3d-point pt)
      blockname
      bili
      bili
      bili
      0
    )
  )
  (command "undo" "e")
  (setvar "osmode" 15359)
  (princ)
)


本帖子中包含更多资源

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

x

评分

参与人数 1明经币 +1 金钱 +10 收起 理由
434939575 + 1 + 10 辛苦了!

查看全部评分

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2023-2-21 14:51 | 显示全部楼层
本帖最后由 xiaozhu33033 于 2023-2-21 15:02 编辑

大佬,我复制了代码,可是输入CK软件都没识别啊,软件已经加载了,可是没反应


没事了,要另存ANSI格式,是我操作不当
发表于 2020-4-20 20:17 | 显示全部楼层
这个代码可以啊,太长了,很多都看不到。我想找一些简单点,一次插入一个那种
发表于 2019-5-20 22:13 | 显示全部楼层
请问能否来个批量以A块(点选)的插入点插入B块(点选)的程序呢?
发表于 2017-11-7 21:19 | 显示全部楼层
我是新人,好东西学习一下
发表于 2017-10-5 21:59 | 显示全部楼层
回帖是一种美德!感谢楼主的无私分享 谢谢
发表于 2017-9-26 13:50 | 显示全部楼层

不错的程序,我喜欢
发表于 2016-7-13 14:34 | 显示全部楼层
发表于 2016-5-29 22:02 | 显示全部楼层
支持~~~~~~~~~~~~~
发表于 2016-5-29 17:30 | 显示全部楼层
谢谢分享 谢谢分享 谢谢分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-27 04:16 , Processed in 0.285898 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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