1、autocad还不具备这个功能,除非是安装一些插件,但这样还不如用CAXA电子图板呢,毕竟后者自带了很多图库,更适合中国人的绘图。
2、怎么能捕捉不到中点,实在不行可以先画一条辅助线,画完中轴线后再把它删掉。
3、任何问题只要能用简单的方式解决就不要复杂化了,为什么捕捉可以而非研究编程呢?
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 pt4px4 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 mnil);退出循环
)
)
)
(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 cl2nil)
)
)
)
(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 (interspt1 pt3 pt2 pt4 t)
(setq ptpt1
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 (midp1 p3 ))
(setq p2 (midp2 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
、对象特性
ADC, *ADCENTER(设计中心“Ctrl+2”)
CH, MO *PROPERTIES(修改特性“Ctrl+1”)
MA, *MATCHPROP(属性匹配)
ST, *STYLE(文字样式)
COL, *COLOR(设置颜色)
LA, *LAYER(图层操作)
LT, *LINETYPE(线形)
LTS, *LTSCALE(线形比例)
LW, *LWEIGHT (线宽)
UN, *UNITS(图形单位)
ATT, *ATTDEF(属性定义)
ATE, *ATTEDIT(编辑属性)
BO, *BOUNDARY(边界创建,包括创建闭合多段线和面域)
AL, *ALIGN(对齐)
EXIT, *QUIT(退出)
EXP, *EXPORT(输出其它格式文件)
IMP, *IMPORT(输入文件)
OP,PR *OPTIONS(自定义CAD设置)
PRINT, *PLOT(打印)
PU, *PURGE(清除垃圾)
R, *REDRAW(重新生成)
REN, *RENAME(重命名)
SN, *SNAP(捕捉栅格)
DS, *DSETTINGS(设置极轴追踪)
OS, *OSNAP(设置捕捉模式)
PRE, *PREVIEW(打印预览)
TO, *TOOLBAR(工具栏)
V, *VIEW(命名视图)
AA, *AREA(面积)
DI, *DIST(距离)
LI, *LIST(显示图形数据信息)
2、绘图命令:
PO, *POINT(点)
L, *LINE(直线)
XL, *XLINE(射线)
PL, *PLINE(多段线)
ML, *MLINE(多线)
SPL, *SPLINE(样条曲线)
POL, *POLYGON(正多边形)
REC, *RECTANGLE(矩形)
C, *CIRCLE(圆)
A, *ARC(圆弧)
DO, *DONUT(圆环)
EL, *ELLIPSE(椭圆)
REG, *REGION(面域)
MT, *MTEXT(多行文本)
T, *MTEXT(多行文本)
B, *BLOCK(块定义)
I, *INSERT(插入块)
W, *WBLOCK(定义块文件)
DIV, *DIVIDE(等分)
H, *BHATCH(填充)
3、修改命令:
CO, *COPY(复制)
MI, *MIRROR(镜像)
AR, *ARRAY(阵列)
O, *OFFSET(偏移)
RO, *ROTATE(旋转)
M, *MOVE(移动)
E, DEL键 *ERASE(删除)
X, *EXPLODE(分解)
TR, *TRIM(修剪)
EX, *EXTEND(延伸)
S, *STRETCH(拉伸)
LEN, *LENGTHEN(直线拉长)
SC, *SCALE(比例缩放)
BR, *BREAK(打断)
CHA, *CHAMFER(倒角)
F, *FILLET(倒圆角)
PE, *PEDIT(多段线编辑)
ED, *DDEDIT(修改文本)
4、视窗缩放:
P, *PAN(平移)
Z+空格+空格, *实时缩放
Z, *局部放大
Z+P, *返回上一视图
Z+E, *显示全图
5、尺寸标注:
DLI, *DIMLINEAR(直线标注)
DAL, *DIMALIGNED(对齐标注)
DRA, *DIMRADIUS(半径标注)
DDI, *DIMDIAMETER(直径标注)
DAN, *DIMANGULAR(角度标注)
DCE, *DIMCENTER(中心标注)
DOR, *DIMORDINATE(点标注)
TOL, *TOLERANCE(标注形位公差)
LE, *QLEADER(快速引出标注)
DBA, *DIMBASELINE(基线标注)
DCO, *DIMCONTINUE(连续标注)
D, *DIMSTYLE(标注样式)
DED, *DIMEDIT(编辑标注)
DOV, *DIMOVERRIDE(替换标注系统变量)
(二)常用CTRL快捷键
【CTRL】+1 *PROPERTIES(修改特性)
【CTRL】+2 *ADCENTER(设计中心)
【CTRL】+O *OPEN(打开文件)
【CTRL】+N、M *NEW(新建文件)
【CTRL】+P *PRINT(打印文件)
【CTRL】+S *S***E(保存文件)
【CTRL】+Z *UNDO(放弃)
【CTRL】+X *CUTCLIP(剪切)
【CTRL】+C *COPYCLIP(复制)
【CTRL】+V *PASTECLIP(粘贴)
【CTRL】+B *SNAP(栅格捕捉)
【CTRL】+F *OSNAP(对象捕捉)
【CTRL】+G *GRID(栅格)
【CTRL】+L *ORTHO(正交)
【CTRL】+W *(对象追踪)
【CTRL】+U *(极轴)
(三)常用功能键
【F1】 *HELP(帮助)
【F2】 *(文本窗口)
【F3】 *OSNAP(对象捕捉)
【F7】 *GRIP(栅格)
【F8】 *ORTHO(正交)
捕捉中点,没其他方法