阵列和三维旋转
大家好,我需要制作一个扭曲的链,并始终使用两个命令。
首先我排列物体,然后手动逐个旋转,但需要很多时间和患者才能获得扭曲结果。
我在普通论坛上发布了这条帖子,巴勃罗·费拉尔向我建议:
“你能使用脚本或lisp例程吗?你试过在定制论坛上发布吗?”。
我知道如何使用lisp例程,但我不知道如何制作lisp例程。
是否有一个lisp例程,用于将一个对象排列成一行并同时旋转它?
是否有Autolisp教程需要学习,因为我需要将此形状做成几种尺寸?
谢谢你的帮助。
我想你可能想要这样
(setq ss (ssget "x" '((0 . "TEXT"))))
(if
(not (member "geom3d.arx" (arx)))
(arxload "geom3d")
) ; if
(rotate3d ss dir sp "r" 0 ang "")
在这里简单地说:
(defun c:test (/ ptim t1 t2 kol ugol)
(setq ptim (car (entsel))
t1 (getpoint "\nInitial a direction point: ")
t2 (getpoint t1 "\nFinal point of a direction: ")
kol(1- (getint "\nCopying number: "))
ugol (getreal "\nAngle of rotation: ")
)
(vl-cmdf "_copy" ptim "" "_non" t1 "_non" t2)
(vl-cmdf "_rotate3d" "_last" "" "_2" "_non" t1 "_non" t2 ugol)
(repeat kol
(vl-cmdf "_copy" "_last" "" "_non" t1 "_non" t2)
(vl-cmdf "_rotate3d" "_last" "" "_non" t1 "_non" t2 ugol)
)
)
如果一切正常,那么可以添加错误的输出代理,默认情况下输入。。。 看见有一些非常聪明的人在这些论坛上闲逛! 对于Geobuilder
我已经试过了。lsp和它的工作,但最后复制对象似乎在一个轴旋转3D。它应该像以前的副本一样排列。每个连杆的距离为1.03 mm。我输入错号码了吗?
命令:测试
选择对象:
初始a方向点:0,0,0
方向的终点:1.03,0,0
复印编号:15
旋转角度:12
kol是指列吗?
谢谢你的帮助!
是的,你说得对,谢谢你,巴勃罗! ica_cici,不,不应该这样。
请显示图形DWG文件,并从命令行复制程序的所有执行过程 我再次尝试lisp,现在我想我知道是什么导致了这个问题。似乎放大和缩小对它有影响(参见test1.jpg和test2.jpg)。
在第二张图片中,我应用了放大,因此屏幕上比第一张图片有更多的空间,并获得了完美的结果。
看起来屏幕外观限制了阵列进程。(对不起,我很难用英语表达)
这是test1的命令列表。jpg公司
命令:测试
选择对象:
初始a方向点:0,0,0
方向的终点:1.03,0,0
复印编号:15
旋转角度:12
_复制
选择对象:找到1个
选择对象:指定基点或位移,或[多个]:_不指定
第二个位移点或:
命令:\u rotate3d
当前正角度:ANGDIR=逆时针ANGBASE=0
选择对象:找到最后1个
选择对象:
指定轴上的第一个点或定义轴
:_2指定轴上的第一个点:
_非指定轴上的第二个点:_非
指定旋转角度或[参考]:12.00000000000000
命令:\u copy
选择对象:找到最后1个
选择对象:指定基点或位移,或[多个]:_不指定
第二个位移点或:
命令:\u rotate3d
当前正角度:ANGDIR=逆时针ANGBASE=0
选择对象:找到最后1个
选择对象:
指定轴上的第一个点或定义轴
:_不指定上的第二个点
轴:_非
指定旋转角度或[参考]:12.00000000000000
命令:\u copy
选择对象:找到最后1个
选择对象:指定基点或位移,或[多个]:_不指定
第二个位移点或:
命令:\u rotate3d
当前正角度:ANGDIR=逆时针ANGBASE=0
选择对象:找到最后1个
选择对象:
指定轴上的第一个点或定义轴
:_不指定上的第二个点
轴:_非
指定旋转角度或[参考]:12.00000000000000
命令:\u copy
选择对象:找到最后1个
选择对象:指定基点或位移,或[多个]:_不指定
第二个位移点或:
命令:\u rotate3d
当前正角度:ANGDIR=逆时针ANGBASE=0
选择对象:找到最后1个
选择对象:
指定轴上的第一个点或定义轴
:_不指定上的第二个点
轴:_非
指定旋转角度或[参考]:12.00000000000000
命令:\u copy
选择对象:找到最后1个
选择对象:指定基点或位移,或[多个]:_不指定
第二个位移点或:
命令:\u rotate3d
当前正角度:ANGDIR=逆时针ANGBASE=0
选择对象:找到最后1个
选择对象:
指定轴上的第一个点或定义轴
:_不指定上的第二个点
轴:_非
指定旋转角度或[参考]:12.00000000000000
命令:\u copy
选择对象:找到最后1个
选择对象:指定基点或位移,或[多个]:_不指定
第二个位移点或:
命令:\u rotate3d
当前正角度:ANGDIR=逆时针ANGBASE=0
选择对象:找到最后1个
选择对象:
指定轴上的第一个点或定义轴
:_不指定上的第二个点
轴:_非
指定旋转角度或[参考]:12.00000000000000
命令:\u copy
选择对象:找到最后1个
选择对象:指定基点或位移,或[多个]:_不指定
第二个位移点或:
命令:\u rotate3d
当前正角度:ANGDIR=逆时针ANGBASE=0
选择对象:找到最后1个
选择对象:
指定轴上的第一个点或定义轴
:_不指定上的第二个点
轴:_非
指定旋转角度或[参考]:12.00000000000000
命令:\u copy
选择对象:找到最后1个
选择对象:指定基点或位移,或[多个]:_不指定
第二个位移点或:
命令:\u rotate3d
当前正角度:ANGDIR=逆时针ANGBASE=0
选择对象:找到最后1个
选择对象:
指定轴上的第一个点或定义轴
:_不指定上的第二个点
轴:_非
指定旋转角度或[参考]:12.00000000000000
命令:\u copy
选择对象:找到最后1个
选择对象:指定基点或位移,或[多个]:_不指定
第二个位移点或:
命令:\u rotate3d
当前正角度:ANGDIR=逆时针ANGBASE=0
选择对象:找到最后1个
选择对象:
指定轴上的第一个点或定义轴
:_不指定上的第二个点
轴:_非
指定旋转角度或[参考]:12.00000000000000
命令:\u copy
选择对象:找到最后1个
选择对象:指定基点或位移,或[多个]:_不指定
第二个位移点或:
命令:\u rotate3d
当前正角度:ANGDIR=逆时针ANGBASE=0
选择对象:找到最后1个
选择对象:
指定轴上的第一个点或定义轴
:_不指定上的第二个点
轴:_非
指定旋转角度或[参考]:12.00000000000000
命令:\u copy
选择对象:找到最后1个
选择对象:指定基点或位移,或[多个]:_不指定
第二个位移点或:
命令:\u rotate3d
当前正角度:ANGDIR=逆时针ANGBASE=0
选择对象:找到最后1个
选择对象:
指定轴上的第一个点或定义轴
:_不指定上的第二个点
轴:_非
指定旋转角度或[参考]:12.00000000000000
命令:\u copy
选择对象:找到最后1个
选择对象:指定基点或位移,或[多个]:_不指定
第二个位移点或:
命令:\u rotate3d
当前正角度:ANGDIR=逆时针ANGBASE=0
选择对象:找到最后1个
选择对象:
指定轴上的第一个点或定义轴
:_不指定上的第二个点
轴:_非
指定旋转角度或[参考]:12.00000000000000
命令:\u copy
选择对象:找到最后1个
选择对象:指定基点或位移,或[多个]:_不指定
第二个位移点或:
命令:\u rotate3d
当前正角度:ANGDIR=逆时针ANGBASE=0
选择对象:找到最后1个
选择对象:
指定轴上的第一个点或定义轴
:_不指定上的第二个点
轴:_非
指定旋转角度或[参考]:12.00000000000000
命令:\u copy
选择对象:找到最后1个
选择对象:指定基点或位移,或[多个]:_不指定
第二个位移点或:
命令:\u rotate3d
当前正角度:ANGDIR=逆时针ANGBASE=0
选择对象:找到最后1个
选择对象:
指定轴上的第一个点或定义轴
:_不指定上的第二个点
轴:_非
指定旋转角度或[参考]:12.00000000000000
命令:\u copy
选择对象:找到最后1个
选择对象:指定基点或位移,或[多个]:_不指定
第二个位移点或:
命令:\u rotate3d
当前正角度:ANGDIR=逆时针ANGBASE=0
选择对象:找到最后1个
选择对象:
指定轴上的第一个点或定义轴
:_不指定上的第二个点
轴:_非
指定旋转角度或[参考]:12.00000000000000
非常感谢Geobuilder
测验图纸
页:
[1]