乐筑天下

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

[编程交流] 移动命令结束位置错误

[复制链接]

1

主题

4

帖子

3

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 16:36:40 | 显示全部楼层 |阅读模式
你好
 
我试图创建一个lisp函数用于批处理,该函数可以移动、缩放为多段线创建一个边界矩形,这些多段线是从另一个批处理过程生成的,该批处理过程是从具有随机比例的孤立png对象创建的。最终目标是在Sketchup中创建面向相机的面,将这些多段线用作正确阴影的边界。
 
这是我当前的代码(可能不是最优化的方法)和一个示例文件,演示了这个问题。
[ATTACH]60822[ATTACH][ATTACH]60823[ATTACH]
 
问题是,函数中的“移动”命令应该将所有多段线从边界框的底部中心移动到原点,但是,如果创建的边界框已经接近原点,它不会最终移动到原点,而是保持原始的闭合值。如果先将多段线从原点移开,效果会很好。当缩放后使用原点作为基点,放大距原点的距离并错误缩放时,这会成为一个问题。
 
我可能可以通过更改操作顺序或添加额外的move命令来解决这个问题,如果它最初靠近原点,则可以将其移开,但我想知道是否有适当的解决方法来解决这个问题。
 
旁注:如果有人知道可以复制的lisp函数
或者可以大致解释一下他们用来确定线段(圆弧或直线)何时开始或结束的方法,这样我就可以自己尝试了。如果能这样做,我将不胜感激。他们提到了模糊逻辑,但没有充分研究它。我已经可以通过比较圆弧的凸出中心和直线的共线测试(ab+ac=ac)来修剪冗余顶点。谢谢
回复

使用道具 举报

18

主题

1529

帖子

973

银币

中流砥柱

Rank: 25

铜币
649
发表于 2022-7-5 16:52:41 | 显示全部楼层
您的附件无效。但是你描述的问题听起来很像经典的“运行Osnaps问题”。
 
3种解决方案:
1.在使用\u Move命令之前,将OSMODE变量设置为0。
2.使用“_non”覆盖OSMODE设置。
3.使用vla move而不是\u move命令。
 
解决方案2示例:
  1. (command "_.move" ss "" "_non" pt1 "_non" pt2)
回复

使用道具 举报

1

主题

4

帖子

3

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 17:11:25 | 显示全部楼层
谢谢,看起来这就是问题所在,因为这些解决方案有效。这里是为感兴趣的人上传原始附件的第二次尝试:Scale2HumanSize。lsp
 
看起来我仍然需要将所有多段线顶点添加到点列表中,因为vla getboundingbox似乎遗漏了一些点,并且与当前视图相关。
导致错误的示例图纸。图纸
回复

使用道具 举报

18

主题

1529

帖子

973

银币

中流砥柱

Rank: 25

铜币
649
发表于 2022-7-5 17:18:57 | 显示全部楼层
你最后的陈述不正确。vla getboundingbox函数不会漏点(它计算两个点:“min”和“max”),并且不依赖于当前视图。
回复

使用道具 举报

1

主题

4

帖子

3

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 17:32:40 | 显示全部楼层
那可能是因为我仍然是lisp编码的初学者。很可能是在运行osnaps的draw rectangle命令中,使其看起来不正确。将第一个解决方案而不是第二个解决方案添加到move命令中,可以解决目前为止的所有情况。
 
对于lisp程序,还有其他系统变量需要注意吗?(或列出它们的论坛/网站)
 
再次感谢您的帮助。
 
这是工作版本:Scale2HumanSize。lsp。
回复

使用道具 举报

18

主题

1529

帖子

973

银币

中流砥柱

Rank: 25

铜币
649
发表于 2022-7-5 17:39:37 | 显示全部楼层
以下是2013年的变量概述:
http://www.hyperpics.com/system_variables/
 
正如你所看到的,有很多。除了OSMODE之外,CMDECHO是另一个在使用命令调用的Lisp程序中经常更改的变量。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-8-24 15:40 , Processed in 2.469513 second(s), 65 queries .

© 2020-2025 乐筑天下

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