乐筑天下

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

[编程交流] LISP插入依赖块

[复制链接]

2

主题

6

帖子

4

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 23:00:39 | 显示全部楼层 |阅读模式
我希望这是可能的,因为目前这个过程在我们产品的设计过程中需要很多时间。
 
我们首先绘制一条与两条(多边形)直线或圆弧相交的垂直线(或xline)。
 
我要找的是一个LISP程序,它在选择顶部和底部交点后计算这些点之间的(垂直)距离(就像命令DIST一样)。然后,它应该插入两个块,一个在顶部,一个在底部交点。程序应根据这些交叉点之间的距离选择两个街区。
 
并且,为了将其全部舍入,它应该删除我们在开始时绘制的垂直线,但这是额外的。:-)
 
以下是应插入的块的值:
 
RPM块(顶部插入点):
距离
距离≥ 143和距离
距离≥ 188和距离
距离≥ 253和距离
距离≥ 343和距离
距离≥ 443和距离
距离≥ 543和距离
距离≥ 643=插入块RPM600
 
BP块(底部插入点):
距离
距离≥ 98和距离
距离≥ 143和距离
距离≥ 173和距离
距离≥ 203和距离
距离≥ 233和距离
距离≥ 298=插入块BP250
 
 
希望有人能解决这个问题。:-)
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
211
发表于 2022-7-5 23:11:21 | 显示全部楼层
如果距离为525:顶部块将为“RPM400”,底部为“BP250”?
 
如果距离为203:顶部块为“RPM150”,底部块为“BP160”?
 
两种说法都正确吗?
回复

使用道具 举报

2

主题

6

帖子

4

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 23:21:23 | 显示全部楼层
是的,这是正确的。
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
211
发表于 2022-7-5 23:25:20 | 显示全部楼层
坚持我会写一个快速演示。。。。
 
问题:垂直线总是存在吗?线是线实体吗?或者有时是多段线?
关于张贴一个样本画这里奥图。。。
 
 
Q&D:[修改为拾取两个交点并删除参考*线]
[code](Defun c:demo(/\u where\u checkb v1 v1b v2 v2b top bot blk\u top blk\u bot);;;PBEMA2014;;;(Defun _wheret(v vv vb/bn)(cond((
回复

使用道具 举报

2

主题

6

帖子

4

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 23:31:20 | 显示全部楼层
谢谢你的帮助。
我们可以适应最有效的方式。我自己使用xline,但我知道至少有一位同事使用普通行。我们仅将这些线用作确定这些块在图形中的位置的辅助工具。插入块后,我们删除线。
 
希望我现在能把事情弄清楚一点:
 
之前的情况。
点1为顶部交点,点2为下部交点。在这种情况下,这些点之间的距离为183.2,因此应产生RPM100和BP130。
 
000039l44r6s4swi4fbqw4.jpg
 
以及将块插入图形后的情况:
 
000041yi0un08gs00xk30k.jpg
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
211
发表于 2022-7-5 23:40:19 | 显示全部楼层
在这种情况下,提示选择两个交点是更好的选择。
 
邮政编码更新#4
 
另一种选择是使用带有拉伸参数的动态块
回复

使用道具 举报

2

主题

6

帖子

4

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 23:50:44 | 显示全部楼层
再次感谢您的帮助。我刚刚开始测试代码,但在它要求我选择顶部和底部交点之后,它就跳到了>>。
 
因此,在此之后,我用我有限的Lisp技能进行了一些修改,并最终用以下代码实现了它:
 
[code](Defun c:onepoot(/v1 v1b v2 v2b top bot blk\u top blk\u bot)(Defun \u wheret(v vv vb/bn)(cond((
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
211
发表于 2022-7-5 23:55:48 | 显示全部楼层
 
原因是在原始代码中,它检查是否存在来自_的结果块名,如果没有找到,消息将显示为>>。
 
 
不管怎样,当你删除那些你可能会问的行时,它仍然有效?我猜想块所在的路径/文件夹包含在SFSP中,否则代码将崩溃。
 
我更新了上面的代码以仍然检查块的有效性。
 
在代码中有两条语句用于插入块。移除另一个(foreach….),在您的修改中不需要它
 
此外,我注意到您删除了代码中应该查找参考线的行,并在插入顶部和底部块后将其删除。
 
这就是为什么我们通常要求OP附加一个dwg文件来测试代码,以避免类似的问题。
 
 
底线是,代码能够帮助您解决问题。
 
不客气ottoo
回复

使用道具 举报

2

主题

389

帖子

387

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 00:03:46 | 显示全部楼层
是的,我也想过,但在某些情况下,使用更多的块来跟踪项目计数可能更容易。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-11 03:35 , Processed in 1.858056 second(s), 72 queries .

© 2020-2025 乐筑天下

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