在中使用Arraypath需要帮助
试着用lisp语言完成一个简单的任务:1、从a到B划一条线
2、在a处画一个小圆圈
3、使用命令Arraypath
4、选择圆
5、选择直线作为曲线
6、方法->分割
7、项目->5(可以是任何数字)
我在autocad中这样做,无论如何绘制直线,无论圆是放置在A还是B,它都会一直工作
当我使用以下lisp时,它只起作用。从左到右或从上到下绘制直线,并将圆放置在:
(定义C:InsDistributedBar()
(命令“.LINE”pause pause“”)
(setq lastline(entlast))
(命令“.circle”pause pause“”)
(setq lastbar(entlast))
(命令.arraypath“lastbar”“lastline 5”D“”)
)
当我用以下行替换arraypath以模拟命令arraypath的直接输入时:
(命令“.arraypath”lastbar“”lastline“M”“D”“I”5”)
代码根本不起作用。执行回音为:
命令:。阵列路径
选择对象:找到1个
选择对象:
类型=路径关联=是
选择路径曲线:
输入沿路径的项数或[方向/表达式]:M需要1到32767之间的整数,或option关键字。
输入沿路径的项数或[方向/表达式]:D需要1到32767之间的整数,或option关键字。
输入沿路径的项数或[方向/表达式]:我需要一个介于1和32767之间的整数,或option关键字。
输入沿路径的项数或[方向/表达式]:5
指定沿路径或的项目之间的距离:
选择夹点以编辑阵列或[关联/方法/基点/切线方向/项目/行/级别/对齐项目/Z方向/退出]:nil
我对lisp不太了解。我不知道怎么了。
请帮忙。
谢谢
小平 试试这个
(DEFUN C:InsDistributedBar ()
(command ".LINE" pause pause "")
(setq lastline (entlast))
(command ".circle" pause pause)
(setq lastbar (entlast))
(command "arraypath" lastbar "" lastline 5 "D" "M" "D" "")
(princ)
)
(command "arraypath" lastbar "" lastline 5 "D" "M" "D" "")
做与您尝试的相同的事情,但变化不大。。。
如果您可以在代码本身中提供Divide选项,那么为什么要尝试方法->Divide 我尝试的原因
(命令“.arraypath”lastbar“”lastline“M”“D”“I”5”)
是模仿在autocad中直接使用Arraypath的方式。
我试过你的密码
(命令“arraypath”lastbar“lastline 5”D“M”D“”)
它仍然不起作用。试着用不同的方式画这条线,有时这5个圆可以放在相反的方向上。
谢谢
小平 哦,对不起,没有检查
现在试试这个:
(defun c:test (/ a b l c)
(if
(setq a (getpoint "\nSpecify start point : ")
b (getpoint a "\nSpecify end point : ")
)
(progn
(command ".line" a b "")
(setq l (entlast))
(command ".circle" a pause)
(setq c (entlast))
(command ".arraypath" c "" l "O" a b "E" 5 "D" "X")
)
)
(princ)
) Trie你的代码,工作完美!
谢谢!
虽然我不明白“O”选项来自哪里。如何在lisp中使用命令,从哪里可以获取文档?(语法、参数……)。
小平
很高兴来到这里
“O”代表方向。。。。你可以在命令行中看到这一点
有一些网站可以让你学习lisp。。。
例如
http://www.afralisp.net/index.php
http://lee-mac.com/index.html 我检查了autocad 2015命令行,没有看到方向选项。我还检查了arraypath文档,也没有看到这个选项。
http://knowledge.autodesk.com/support/autocad/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/AutoCAD-Core/files/GUID-D36C46CD-4E17-4A16-A387-C0B158EA5A9E-htm.html
你能告诉我你从哪里得到这个选项吗?
谢谢
小平 这个例子摘自你的第一篇文章。。。查看红色突出显示
Command: .arraypath
Select objects: 1 found
Select objects:
Type = Path Associative = Yes
Select path curve:
Enter number of items along path or [Orientation/Expression] <Orientation>: M Requires an integer between 1 an 32767, or option keyword. 这是代码中执行的arraypath的回声。如果直接在autocad命令行中使用arraypath命令,则不会获得该方向选项。
当您直接使用该命令时,提供/需要的选项和参数似乎不同于在lisp中执行的选项和参数(命令“.”…)。这没有道理。这些记录在哪里? 你完全正确。我注意到了。我也是第一次遇到这样的事情。通常,命令以与autocad中的手动和自动操作相同的方式执行。我认为不会有任何关于这个的纪录片。如果可以的话,我很感兴趣。在这种情况下,经验n实践就出现了。
页:
[1]
2