乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 31|回复: 4

[编程交流] 在autol中使用突发命令

[复制链接]

1

主题

3

帖子

2

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 09:55:35 | 显示全部楼层 |阅读模式
你好
 
我正在制作一个lisp例程,该例程插入一个块并打断该块插入的行。插入的块是一个泵示意图,其中包括阀门、过滤器和控制点(标签)。我使用BREAKDIM属性(不可见)设置插入块的换行符的宽度。(你们中的一些老Lisp程序的人会记得代码BBlock.lsp)
 
我想在从lisp例程中插入块后将其打断。如果我使用代码
 
(C:突发)
 
它调用突发命令,但提示我:选择对象。
 
我想让它爆裂刚刚插入的块(entlast),或者让我输入块名。
 
另一种选择是使用(命令“.u explode”“L”“”)函数,然后删除属性Def-“BREAKDIM”。为此,我需要一些代码来找到带有标记“BREAKDIM”的属性def(不再在块中,因为它刚刚被分解),然后使用“command”erase“函数将其删除。
 
如果有人能帮忙,我们将不胜感激。
 
Mbuk公司
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:23:24 | 显示全部楼层
欢迎来到CADMBUK!我相信你会喜欢这里的
 
首先,你看到这个了吗?可能会做你想做的事。
 
由于您似乎想要删除不可见属性,您可能也想看到这一点。
 
祝你好运
 
回复

使用道具 举报

1

主题

3

帖子

2

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 10:40:07 | 显示全部楼层
 
 
谢谢李。
 
我要到下周六才有机会再做这件事。我会尽量在这周办理入住手续。我肯定想试试你的Lisp程序程序。它看起来真的令人印象深刻。非常感谢。这似乎是一个非常专业的网站。
 
关于删除不可见属性,你是对的。分解的唯一原因是允许在不反转属性文本的情况下镜像块。
 
我附上了我想插入的两个方块。(每个图形中有多个块。)我想你应该试着把它们和你的日常生活联系起来。
 
这就是问题所在。我只想提示用户输入a51-59B(P-XX)属性,其他属性应该能够在块分解后进行编辑,但称为BAS-HHA的块通常只由少数高级人员编辑。此外,我希望用户能够在需要时镜像泵和阀门,但这只是因为属性文本在镜像时不响应“mirrtext”setvar,否则我可以对整个过程进行镜像。所以我选择只插入未爆炸的块,然后让用户使用突发和镜像所有对象本身。这两个块的原因是这些块中的一些块需要两种颜色。如果用户希望示意图存在,则X。。。块将被插入,否则C。。块将被插入。新的和现有的颜色和线宽不一样。
 
我知道如何使用和修改我们拥有的大多数简单lisp例程。所附图纸是示意图的一部分,我将让用户从autoCAD菜单的传统部分的图像平铺中插入。也许更现代的方法是使用对话框编程,但我在这些方面没有太多经验,似乎找不到像样的书来学习。
 
只有在AutoCAD版本迁移期间修改菜单时,我才有机会处理这些问题。我们目前正在从2009年升级到2011年,所以我在有时间的时候尽可能多地添加,但我忘记了一些lisp编程。非常感谢你的帮助。
 
我已经看过你的网站了。你是一个了不起的程序员!我们公司已经开始在一些项目中使用Revit。您能够在Revit中编程吗?
 
再次感谢您的回复,
 
标记(Mbuk)
C泵-AFD。图纸
XC-PUMP-AFD。图纸
回复

使用道具 举报

1

主题

3

帖子

2

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 10:43:31 | 显示全部楼层
test_块。图纸
 
谢谢李,
 
有几个问题。我将如何修改“I第一个”。lsp“允许我从autolisp中输入(传递)块名?我熟悉autolisp,但不熟悉visual lisp。(我想从工具栏按钮传递块名。)我正在从菜单工具栏按钮插入这些块和图像平铺菜单。我用来插入块的命令代码是:
 
^C^C^P(C:hhasysSCH)(setq H_Blk“A22-26”)(BBLOCKSCH 1);\A22-26;(C:NRbblkins SCH)(普林斯)
 
hhasysSCH-检查块是否要插入到新层或现有层上,并检查是否已设置比例。
 
BBLOCKSCH-用于检查块(A22-26)是否将breakdim作为其第一个实体,并在通过NRbblkins SCH函数插入后断开线(NR代表未旋转-SCH代表示意图。您可能会认识1987年的BBLOCK函数)
 
我试过你的自动突破障碍程序。只要块边界框宽度与要修剪的宽度匹配,它就可以正常工作。(使用test_block-1b中的附加块-1a尝试您的例程。dwg中也有使用breakdim插入的相同块)。
 
 
 
我想使用autobreak块的修改版本,将一个块插入双线管道中,并使其打断穿过块边界区域的所有线。(另见测试块图纸中的2a和2b。)如果可以对其进行修改,使其可以通过类似于上述的命令行传递,我们将不胜感激。
 
你的网站太棒了。你是一个很好的程序员。
 
非常感谢你的帮助。(我只在周末做CAD工作-因此可能需要一些时间才能回复-请耐心等待)
 
谢谢
 
标记(Mbuk)
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:05:58 | 显示全部楼层
 
如果只提供了块名,LISP如何知道分解哪个块?该函数需要一个对象-无需修改,您可以通过隐含的选择集提供该对象,例如,分解最后创建的实体:
 
  1. (sssetfirst nil (ssadd (entlast))) (c:iBurst)

 
我不会尝试你的附加块,因为这是一个由程序用于确定断点的算法引起的明显限制-这在我的网站上的程序描述中有说明。
 
 
我目前不打算修改这个程序。
 
当做
 
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-7 00:25 , Processed in 0.323621 second(s), 62 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表