明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1613|回复: 4

[求助]块的问题,如何将程式执行的内容变为指定的块

[复制链接]
发表于 2005-6-16 09:36:00 | 显示全部楼层 |阅读模式
块的问题 模具图中有很相同的的零件,如:螺丝,导柱,导套等,如何让这些小零件的程式执行完后变为指定的块。以减少在CAD选择中不必要的重复,加快工作效率。 以下程式如何修改,将两个圆变为指定的块。谢谢! (defun c:mm() (setvar "cmdecho" 0) (setq bpt (getpoint "\nInsert point:")) (command "circle" bpt 12) (command "circle" bpt 8) (princ) )
发表于 2005-6-17 13:43:00 | 显示全部楼层
本帖最后由 作者 于 2005-6-18 22:18:22 编辑

(defun c:mm() (setvar "cmdecho" 0) (setq bpt (getpoint "\nInsert point:")) (command "circle" bpt 12) (setq ent (entlast)) (command "circle" bpt 8) (command "-block" "AA1" bpt ent (entlast) "") ;AA1为图块名 (command "-insert" "AA1" bpt 1 1 0) (princ) )
 楼主| 发表于 2005-6-18 13:33:00 | 显示全部楼层
程式不太实用,若"块"内不止两个元素则不行,这个要如何修改??


谢谢!!!
发表于 2005-6-18 22:15:00 | 显示全部楼层
我是在你的程序基础上修改的(你只画了两个元素),若不止两个元素,修改如下: (defun c:mm(/ bpt ent ss name)
(setvar "cmdecho" 0)
(setq bpt (getpoint "\nInsert point:"))
(command "circle" bpt 12)
(setq ent (entlast)
ss (ssadd))
(ssadd ent ss)
(command "circle" bpt 8)
(command "circle" bpt 10)
;............ ;若干个元素
;............
(while (setq ent (entnext ent))
(ssadd ent ss)
)
(setq name "AA1")
(while (tblsearch "BLOCK" name)
(setq name (strcat "AA" (itoa (1+ (atoi (substr name 3))))))
) ;避免图块名重复,若图面中已有同名的图块,则其序号递增
(command "-block" name bpt ss "")
(command "-insert" name bpt 1 1 0)
(princ)
) 其实这种情况可将其制成无名块(占内存小),论坛中有制无名块的话题,可搜索一下
 楼主| 发表于 2005-6-20 08:48:00 | 显示全部楼层
楼主真是热心人,我的问题已解决,谢谢!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-17 15:52 , Processed in 0.168248 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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