帮助理解Lisp Rout
最近,我有一个Lisp程序例程由另一个成员。它创建了一个类似阵列的图案,该图案搜索位于每个面板中的属性,并相应地对块进行图案填充。由于区域之间的间距变化,仅使用array命令通常无法完成此操作。它做的正是它的编程要做的,但是我想做一些改变,我不确定如何去做这件事。我理解代码的以下部分允许我更改y值,我已经做了很多次,但是我找不到在哪里更改x值。我已经厌倦了添加x值(类似于添加y值的方式),但没有成功。
(list x_pointer (+ 49.0 y_value)) 1.0 1.0 0.0)
我还想知道例程在代码中从哪里获取间距。例程似乎是从下一个区域获取间距,而不是块当前所在的区域。有没有办法改变这一点?我附上了一张CAD的图片,显示了不同之处。在顶部,第一个间距实际上是下一个区域的间距,而不是它所在的区域。唯一的解决方法是在一行中添加两个相同值的区域,这将增加压载块的数量。
如果有人能为我指明正确的方向,告诉我如何改变现状,我将非常感激。
压舱物lsp
显示例程处理前后的图形将帮助我们尝试改进它。。。
此外,您可以提供与原始线程的链接。。。
http://www.cadtutor.net/forum/showthread.php?88364-块间距lisp&高亮显示=镇流器
是的,我想那会更有帮助。很抱歉。正如您所见,蓝色区域的间距小于黄色区域。为了获得正确的块的第一个间距,必须添加两个黄色区域,这使我得出结论,例行程序正在获取下一个颜色区域的间距。如果你还需要什么,请告诉我。
测试2(之后)。图纸
测试2(之前)。图纸 您的块(之前)绘图具有错误的属性规范。。。
如果有1个镇流器,则属性必须仅保留块插入点的X坐标和镇流器块插入点的X坐标之间的1个间距值。。。
如果单个块中的一行中有2个或多个镇流器,则属性必须在块的X坐标和第一个镇流器的X坐标之间保持2个或多个间距,然后在第一个镇流器和下一个镇流器(第二个)之间保持间距,依此类推。。。或者,块的X坐标和每个镇流器每个插入点的X坐标之间的间隔。。。
因此,根据您的(后)图纸:
1、左下块:
-间距:0.0
-背面:0.0510.0
2、右下块:
-间距:147.0
-背面:7.0920.0(镇流器之间)或927.0(块和第二镇流器之间的净间距)
3、左上块:
-间距:0.0
-背面:0.0760.0
4、右上块:
-间距:427.0
-背面:507.0
那么这会是我如何设置它的问题吗?它似乎完全按照属性值的编程方式工作和分隔块,只是它捕捉道渣块要进入的区域的间距,而不是它当前所在的区域。我该如何改变这一点?
另外,我在哪里更改起始x值点;我通常使用这个例程来做所有的块,然后抓住它们,把它们移到适当的悬臂上。
对不起,如果我误解了你说的话,我只是以为我已经开始理解了,但现在我不太确定哈哈。 我认为例程“镇流器.lsp”只能根据块的属性规范正常工作,这纯粹是运气使然。。。根据我的建议,你们不必有不可理解的代码,你们必须根据每个块插入镇流器,无论它在选择数组中的什么位置出现。。。
IMHO,这个mod。这将为您节省很多麻烦,您将确保得到正确的结果。。。
那么我该如何修改它以产生正确的结果呢。
所以我最终解决了为什么它从下一个区域“抓取”间距的问题,一个块在我的着色区域后面,不知怎么的,它偏离了间距。现在,我的下一个问题是如何将插入点移到着色区域的左下角而不是上方。 我很高兴你解决了这个问题,但我会像我描述的那样做。。。
至于改变方块基点,你们已经在李的网站上解决了这个问题。。。
http://www.lee-mac.com/changeblockinsertion.html
当做
对不起,我想我不是很清楚。我想更改lsp例程的插入点。我知道如何计算y值,但我不知道如何计算x值。
页:
[1]