首页
全部版块
热门版块
化学
生物学
药学
通用分类
工艺技术
问题13w
化学学科
问题13w
仪器设备
问题12w
安全环保
问题4w
材料科学
问题1w
化药
问题1w
工艺技术
问题13w
化学学科
问题13w
仪器设备
问题12w
安全环保
问题4w
材料科学
问题1w
日用化工
问题2k
精细化工
问题1k
生物医学工程
问题7k
细胞及分子
问题4k
微生物
问题2k
动植物
问题609
化药
问题1w
中药
问题243
生物医药
问题220
回答
问题
待回答
文章
视频
登录
加入盖德
AutoCAD下绘制直线对称中心线的方法?
回答
关注
已关注
AutoCAD下绘制直线对称中心线的方法?
AutoCAD 是目前国内应用最广范的 CAD 系统之一, AutoCAD 功能强大,是一个通用的 CAD 平台,但是如果不根据本专业的需要进行二次开发,使用起来是很不方便的。画对称中心线是机械设计中经常遇到的一个问题。 笔者用 AutoLISP 依据国家标准开发了两个程序,可以很方便地解决直线对称中心线的问题。 第一个程序适用于两条边是连续直线的情况。使用方法是:用 LOAD 命令装入 GLS.LSP ,运行 C:GSL ,依据屏幕提示,分别选择两边,自动绘制出中心线。 GSL.LSP: (defun mid(pt1 pt2 ) 计算两点之中点的功能函数 (setq pt (mapcar'+pt1 pt2 )) (setq pt (mapcar'/pt'(2 2 2))) ) (defun c:gsl/m cl1 cl cl2 e pt pt1 pt2 pt3 pt4 a) (SETQ M 1) (WHILE M (SETQ CL1 (ENTSEL"\n 选择第一条直线 ")) (cond ((not cl1 ) (prompt"\n 没有发现实体 ")) ((/="LINE"(cdr (assoc 0 (setqe(entget (car cl1)))))) (prompt"\n 所选不是直线 ") ) (t (prompt" 找到了第一条直线 ”) (setq m nil) ;退出循环 ) ) ) (setq cl (ssget (nth 0 (cdr cl1)))) ;取得第一条直线的实体数据 (SETQ M 1) (WHILE M (SETQ CL2 (ENTSEL"\n 选择第二条直线 ")) (if cl2 (if (ssmemb (car cl2) cl ) (progn (princ"\n 选择
重复
,重新选择 ") (setq cl2 nil) ) ) ) (cond ((not cl2 ) (prompt" 没有发现实体或重复 ")) (( / ="LINE"(cdr (assoc 0 (setq e (entget (car cl2)))))) (prompt"\n 所选不是直线 ") ) (t (prompt"\n 两条直线已经选择完毕 ") (setq m nil) ;;;退出循环 ) ) ) ;;;取得第一直线两端点的坐标 (setq pt1 (cdr (assoc 10 e )) pt2 (cdr (assoc 11 e ))) (setq e (entget (car cl1))) ;;取得第二条直线的实体数据 ;;;取得第二直线两端点的坐标 (setq pt3 (cdr (assoc 10 e )) pt4 (cdr (assoc 11 e ))) ;;调整端点 (if (inters pt1 pt3 pt2 pt4 t) (setq pt pt1 pt1 pt2 pt2 pt ) ) ;;;计算两端中点坐标 (setq pt1 (mid pt1 pt3 )) (setq pt2 (mid pt2 pt4 )) (setq a (angle pt1 pt2)) ;计算中心线的倾角 (setq pt2 (polar pt2 a 2.5)) ;;计算中心线的第一个端点 (setq pt1 (polar pt1 ( + pi a ) 2.5)) (command"layer""SET"5"") ;;设置中心线层 (command "line" pt1 pt2 "") ;;画出中心线 ) (princ "\nC:GSL has loaded") (Princ "\n for symmetry line") (princ) 第二个程序适用于阶梯轴,阶梯孔等各种情况。使用方法是:用 LOAD 命令装入 GLS1.LSP ,运行 C:GSL1 ,依据屏幕提示,分别选择两边的端点,自动绘制出中心线。 GSL1.LSP (defun mid(pt1 pt2 ) (setq pt (mapcar '+ pt1 pt2 )) (setq pt (mapcar '/ pt '(2 2 2))) ) (defun c:gsl1(/ p1 p1 p3 p4 a ) ;;保存环境变量 (setq os (getvar "osmode")) (setq cm (getvar "cmdecho")) ;;设置环境变量 (setvar "osmode" 33) (setvar "cmdecho" 0) ;;依次读取两条直线的端点 (initget 1) (setq p1 (getpoint"\n 选择第一条直线的第一个点 ")) (initget 1) (setq p2 (getpoint"\n 选择第一条直线的第二个点 ")) (initget 1) (setq p3 (getpoint"\n 选择第二条直线的第一个点 ")) (initget 1) (setq p4 (getpoint"\n 选择第二条直线的第二个点 ")) ;;;;恢复环境变量 (setvar "osmode" os) (setq p1 (mid p1 p3 )) (setq p2 (mid p2 p4 )) (setq a (angle p1 p2)) (setq p2 (polar p2 a 2.5)) (setq p1 (polar p1 (+ pi a ) 2.5)) (command "layer" "set" 5 "") (command "line" p1 p2 "") ) (princ "\nC:GSL1 has loaded") (Princ "\n for symmetry line") Princ
显示全部
关注问题
已关注
回答
0条评论
邀请回答
分享
复制链接
微信扫一扫
举报
眼泪的错觉
登录
后参与回答
登录
后参与评论
你可以邀请下面用户,快速获得回答
4人参与回答
Grübchen
,设备工程师
2018-08-03回答
虽然不懂 收藏了,感谢楼主
8
0条评论
举报
收起
确认修改
取消
登录
后参与评论
反感
,设备维修
2018-08-03回答
啥意思 我怎么看不懂?
6
0条评论
举报
收起
确认修改
取消
登录
后参与评论
止水诱棠
,气化主操
2018-08-03回答
选直线怎么还要选端点?不能直接选直线?
3
0条评论
举报
收起
确认修改
取消
登录
后参与评论
前任
,设备工程师
2018-08-03回答
两点决定一条直线,有了端点才有直线,直接选直线就是选的端点
8
0条评论
举报
收起
确认修改
取消
登录
后参与评论
登录
后参与回答
编辑推荐
三价铬溶液颜色问题?
15个回答
能否用离心代替旋蒸去除乙醇...
2个回答
想请教下靛蓝染料在紫外分光...
4个回答
硫酸钙结垢,用什么清洗掉?
4个回答
氰基取代苯环上的卤素的反应...
0个回答
问题索引:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
这是一条消息提示
黄姜粉末属于爆炸性粉尘吗?.请盖德化工网盖德问答的高手、专家们帮忙看下
确定
取消
登录化工知识社区盖德问答
微信登录
账号登录
请用微信扫描二维码登录
"盖德问答"
忘记密码
|
免费注册
提醒
您好,您当前被封禁
天,这
天内您将不能登陆盖德问答,离解封时间还有
天
我已了解
欢迎加入化工知识社区盖德问答
请打开微信扫描二维码
欢迎加入化工知识社区盖德问答
欢迎你!
,完善下你的信息,以后你也可以使用手机号和密码来登录了。
获取验证码
欢迎加入化工知识社区盖德问答
请选择您感兴趣的类别:
提问
问题标题
问题描述(可不填)
请描述...
选择类别
选择分类
化学
生物学
药学
其它
选择二级分类
提醒
提问需要5个能量值,您当前能量值为
,请完成任务提升能量值
去查看任务
请填写举报原因
垃圾广告
有害信息
文不对题
涉嫌侵权信息
其他