ica_cici 发表于 2022-7-6 11:43:18

阵列和三维旋转

大家好,
 
我需要制作一个扭曲的链,并始终使用两个命令。
 
首先我排列物体,然后手动逐个旋转,但需要很多时间和患者才能获得扭曲结果。
 
我在普通论坛上发布了这条帖子,巴勃罗·费拉尔向我建议:
“你能使用脚本或lisp例程吗?你试过在定制论坛上发布吗?”。
 
我知道如何使用lisp例程,但我不知道如何制作lisp例程。
 
是否有一个lisp例程,用于将一个对象排列成一行并同时旋转它?
 
是否有Autolisp教程需要学习,因为我需要将此形状做成几种尺寸?
 
谢谢你的帮助。

Adesu 发表于 2022-7-6 11:56:14

我想你可能想要这样
 

(setq ss (ssget "x" '((0 . "TEXT"))))
(if
(not (member "geom3d.arx" (arx)))
(arxload "geom3d")
) ; if
(rotate3d ss dir sp "r" 0 ang "")

 
 

BearDyugin 发表于 2022-7-6 12:04:03

在这里简单地说:
(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)
)
)
如果一切正常,那么可以添加错误的输出代理,默认情况下输入。。。

Pablo Ferral 发表于 2022-7-6 12:13:05

看见有一些非常聪明的人在这些论坛上闲逛!

ica_cici 发表于 2022-7-6 12:21:50

对于Geobuilder
 
我已经试过了。lsp和它的工作,但最后复制对象似乎在一个轴旋转3D。它应该像以前的副本一样排列。每个连杆的距离为1.03 mm。我输入错号码了吗?
 
命令:测试
选择对象:
初始a方向点:0,0,0
方向的终点:1.03,0,0
复印编号:15
旋转角度:12
 
kol是指列吗?
 
谢谢你的帮助!

ica_cici 发表于 2022-7-6 12:31:43

 
是的,你说得对,谢谢你,巴勃罗!

BearDyugin 发表于 2022-7-6 12:38:34

ica_cici,不,不应该这样。
请显示图形DWG文件,并从命令行复制程序的所有执行过程

ica_cici 发表于 2022-7-6 12:50:27

我再次尝试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]
查看完整版本: 阵列和三维旋转