乐筑天下

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

[编程交流] lisp中的Trim删除了很多

[复制链接]

13

主题

55

帖子

42

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
65
发表于 2022-7-5 15:41:14 | 显示全部楼层
@德拉诺思我想让你的代码飞起来,但我很吃力。
 
问题是,当代码运行时,我得到了“错误的参数类型:lselsetp nil”。从我的角度来看,我似乎在“vl…”方面遇到了麻烦命令
如果我检查错误后的变量,我可以回调P3,但我没有得到“tbe”或“ent”的任何值。
我了解到这可能与用户的权限有关,因此我现在以管理员身份运行AutoCAD,但这一点都没有帮助。感觉我远远不能靠自己的脚走路。。
顺致敬意,
阿门特
回复

使用道具 举报

0

主题

946

帖子

978

银币

限制会员

铜币
-3
发表于 2022-7-5 15:42:26 | 显示全部楼层
我的错,在(defun)之前的文件顶部插入(vl load com),然后加载并再次运行。
回复

使用道具 举报

13

主题

55

帖子

42

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
65
发表于 2022-7-5 15:47:25 | 显示全部楼层
哦我找到了。。但首先要做的事。这条线路(vl load com)对我的下一次尝试没有帮助,但后来我有了这个想法。。
 
代码没有涵盖选择中可能没有完全删除内部对象的对象。这在测试时产生了问题*脸掌*
 
我增加了一个“如果”条款来补偿这个案件。
 
 
 
不幸的是,它仍然给出了与我编写的代码相同的结果。有些边缘并没有一分为二,只是在其中一个边缘进行了切割,并去除了很多。
 
在运行lisp后按ctrl+z返回开始时,我发现第一个ctrl-z实际上会返回用于剪切的“矩形”。但有一点缺失。
 
始终是一样的,其中一个直肠边缘似乎是修剪第一。不知何故,选择集包含第一个矩形。我在(ssget“_C”P6 P7)之后强调了tbe的内容,并将其包括在内。
 
我会继续调查,找到什么就拿出什么。
回复

使用道具 举报

0

主题

946

帖子

978

银币

限制会员

铜币
-3
发表于 2022-7-5 15:49:15 | 显示全部楼层
正如我所说,我在2012年发布的代码对我来说是可行的,尽管我在测试时确保了框架内完全有一个对象
 
它可能是系统变量。我有TRIMMODE=1和EDGEMODE=0
回复

使用道具 举报

13

主题

55

帖子

42

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
65
发表于 2022-7-5 15:51:23 | 显示全部楼层
嗯,它在小范围内工作,就像我在一些物体内切割10毫米的孔。但当我的画框变大(比如4000mm)时,它会先去掉画框的一个边缘。在写这篇文章时,这可能就是问题所在。。也许我有一个问题,因为两个矩形之间的距离在大范围内太小了。实际上,如果我在P6和P7之间做一个矩形,它的大小与P1和P2之间的相同。。AutoCAD中是否有一些检测可以纠正这种小差距以支持用户?(或者在我的情况下,让我的生活变得艰难)
回复

使用道具 举报

13

主题

55

帖子

42

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
65
发表于 2022-7-5 15:54:51 | 显示全部楼层
就这样。。我刚刚添加了代码
 
在选择要修剪的对象和实际修剪命令之间,一切正常。我甚至不需要再计算P6和P7点。即使最初选择了第一个矩形,我还是会在修剪之前删除它
 
你简直不敢相信我现在有多放心。周末开始时间
 
谢谢你的帮助和所有提示!!
 
如果有人有相同的问题,我会复制下面的代码:
 
  1. 7
回复

使用道具 举报

0

主题

946

帖子

978

银币

限制会员

铜币
-3
发表于 2022-7-5 15:58:46 | 显示全部楼层
很高兴你解决了。
回复

使用道具 举报

13

主题

55

帖子

42

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
65
发表于 2022-7-5 16:00:18 | 显示全部楼层
嗯,我以为已经完成了,但用我现在的画,我正在努力。。
 
我将其附在下面:
图纸1.dwg
当lisp(见下文)要求时,可以通过选择图形中白色矩形的两个相对角来尝试i。要启动lisp,请在加载后使用MDEL作为命令。
 
我的问题是,代码似乎仍在首先修剪我的矩形。(我在lisp中找不到这个问题。我认为如果我从选择集“tbe”中删除它,应该不会有问题)如果您使用“撤消”多次回滚lisp所做的更改,您可以看到它。
 
但除此之外,我还有一些新问题。看起来有些元素无法修剪(附图中的红色元素),我不确定为什么以及如何解决它,以使代码不会出错。在当前状态下,我得到了“错误:错误的参数值:AcDbCurve 158”有没有办法修剪它们?如果没有,是否有方法抑制错误并转到下一个元素,以便不取消lisp?
 
我将把lisp的最后一个版本放在下面:
 
  1. 8
回复

使用道具 举报

0

主题

946

帖子

978

银币

限制会员

铜币
-3
发表于 2022-7-5 16:05:10 | 显示全部楼层
对不起,我这周不在,只有现场笔记本电脑。你能用Autocad 2007格式附上这张图吗,我来看看。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 16:06:51 | 显示全部楼层
有一个问题是,如果你经常放大,那么你需要放大和缩小来选取点,一个已知的代码错误是,除非你能看到整个对象,否则像这样的修剪是不起作用的。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-15 03:29 , Processed in 1.620655 second(s), 81 queries .

© 2020-2025 乐筑天下

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