CAD设计论坛

 找回密码
 立即注册
论坛新手常用操作帮助系统等待验证的用户请看获取社区币方法的说明新注册会员必读(必修)
楼主: hx4758

请教各位老师CAD一个自动旋转的问题!(有点难度的!)

[复制链接]
 楼主| 发表于 2011-9-9 17:41 | 显示全部楼层
怎一个谢字,能表达得了的...
发表于 2011-9-11 09:31 | 显示全部楼层
牛人,啊做的不错
发表于 2011-9-11 16:33 | 显示全部楼层
看样子,得学习一下怎么定,LSP程序.
发表于 2011-9-12 05:48 | 显示全部楼层
本帖最后由 xhq1954425 于 2011-9-12 09:59 编辑

在CAD中绕两个轴转用原来的ZZZ是不行的,需要另编程ZZZ解决!


编一个没加修饰的程序试了一下:
(defun C:ZZZ( )
  (setvar "cmdecho" 0)
  (command "ucsicon" "off")
  (command "highlight" 0)
 (repeat 3600
  (command "UCS" "na" "R" "竖直轴")
  (command "rotate" (handent "1B1") "" "0,0,0" "36")
  (command "UCS" "na" "R" "水平轴")
  (command "rotate" (handent "1B9") "" "0,0,0" "36")  
  )
  (command "highlight" 1)
  (princ)
)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

评分

1

查看全部评分

发表于 2011-9-13 10:14 | 显示全部楼层
回复 1# hx4758


    这个程序在论坛里面有的,不过好久了楼主可能要花时间去找了哦,一起也是一个直升机 会自己转、飞,
发表于 2011-9-13 10:15 | 显示全部楼层
回复 19# xhq1954425


   呵呵 不错
发表于 2011-9-13 11:58 | 显示全部楼层
用ZZZ程序吧,我这贴就用它的http://www.askcad.com/bbs/thread-49415-1-1.html
还有个飞机的,我也下载,自动飞起来的,不知道放那里了。
发表于 2011-9-13 16:15 | 显示全部楼层
唉,程序加载了,还是没有转动起来
发表于 2011-9-14 07:12 | 显示全部楼层
本帖最后由 xhq1954425 于 2011-9-14 08:48 编辑
唉,程序加载了,还是没有转动起来
徽商往事 发表于 2011-9-13 16:15



    如果你是用的我的程序,你首先要把DWG文件做对才能旋转起来!
要注意DWG文件中的两个问题:
1.先命名保存两个用户坐标系于DWG文件中,名称分别为 水平轴  和  竖直轴 (就是你自己定义的两个旋转轴)
2.查一下两个转动件的 句柄 代替 1B1  和 1B9 (方法:先选中其中一个转动件后输入LIST,然后回车就能查得)

来个交警的三个部分的动画:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

评分

1

查看全部评分

发表于 2011-9-14 16:24 | 显示全部楼层
回复 24# xhq1954425



    请教许老师 如何确定两个旋转物体的中心点呢?
发表于 2011-9-14 18:14 | 显示全部楼层
本帖最后由 xhq1954425 于 2011-9-14 18:15 编辑

1.(command "rotate" (handent "1B9") "" "0,0,0" "36") 中的 rotate命令在三维中使用的规则是绕Z轴 旋转。
2.先用坐标变换命令Z轴矢量ucs---zaxis(或三点式ucs---3)将坐标系的Z轴与用户定义的旋转轴重合
3.命名保存这个坐标系:ucs---na---s---输入这个坐标系的名称
**至此,这个坐标系就随文件一起被保存了。
以后无论是当前坐标系怎样,只要你点击 工具--命名UCS--选择里面的 某个坐标系名称,且置为当前,就自动恢复这个被存贮的坐标系了。
不知这样说明白了没有?再给个简单的动画你再看一下:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
发表于 2011-9-14 18:38 | 显示全部楼层
本帖最后由 xhq1954425 于 2011-9-14 19:20 编辑

(defun C:ZZZ( )
  (setvar "cmdecho" 0)
  (command "ucsicon" "off")
  (command "highlight" 0)
 (repeat 3600;这个是循环次数,360就行了,3600太多了,没完没了!
  (command "UCS" "na" "R" "竖直轴")
  (command "rotate" (handent "1B1") "" "0,0,0" "36")
  (command "UCS" "na" "R" "水平轴")
  (command "rotate" (handent "1B9") "" "0,0,0" "36")  
  )
  (command "highlight" 1)
  (princ)
)
这个程序中 竖直轴 和 水平轴 必需是在DWG文件中命名保存过的,当然你要是用了别的名称就要改动一下程序,
(command "rotate" (handent "1B9") "" "0,0,0" "36")中的  1B9
(command "rotate" (handent "1B1") "" "0,0,0" "36")中的 1B1
是表示两个旋转对象的“句柄”
在CAD中,每一个对象(包括块)都有一个“句柄”,它在某一个DWG文件中是唯一的也是不变的,在使用我的程序时,需要把两个要旋转的对象的“句柄”放在(handent "   ") 的两个双引号中,获得“句柄”的方法如下演示:



这个程序只是试试,没有美化,如果有需要跟我说一下,再完善一下。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

评分

1

查看全部评分

发表于 2011-9-14 20:02 | 显示全部楼层
如果老师有空 可以做个通用版的
 楼主| 发表于 2011-9-15 15:52 | 显示全部楼层
老师我觉得不用这么麻烦,直接把要旋转的转成块就行了啊!   然后以块的基点为旋转中心!
发表于 2011-9-15 20:29 | 显示全部楼层
老师我觉得不用这么麻烦,直接把要旋转的转成块就行了啊!   然后以块的基点为旋转中心!
hx4758 发表于 2011-9-15 15:52


1.你的问题应该是三维旋转问题
2.三维旋转是绕轴转,绕点如何转?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于|免责|隐私|版权|广告|联系|手机版|CAD设计论坛

GMT+8, 2024-11-24 04:28

CAD设计论坛,为工程师增加动力。

© 2005-2024 askcad.com. All rights reserved.

快速回复 返回顶部 返回列表