|
发表于 2004-7-24 14:57:00
|
显示全部楼层
楼主: 重新改编了你的程序,试试如何?
实际应用中最好是利用带属性的块插入进行标注,不过我对机械作图不了解。
光有符号没有数字,怎么识图?
;;czfh.lsp
(defun c:czfh (/ pt1 ang_pt4 ang_pt3
distance_p1_p2 distance_p1_p34
pt2 pt3 pt4
)
(PREV)
(setvar "osmode" 39) ;捕捉状态endp,mid,cen,int
(setq pt1 (getpoint "\n\t请确定起始点位置: "))
(setvar "osmode" 0) ;强制取消捕捉状态
(setq ang_pt4 (/ pi 3))
(setq ang_pt3 (* pi 0.66667))
;(setq ang_circle (/ pi 2))
(setq distance_p1_p2 12.7017)
(setq distance_p1_p34 5.7735)
;(setq distance_p1_circle_center 3.33333)
;(setq radius_center 1.66667)
;(setq distance_p1_p3040 11.3725)
;(setq ang_pt40 1.31415)
;(setq ang_pt30 1.82744)
(mkla "粗糙符号" 4)
(setq pt2 (polar pt1 ang_pt4 distance_p1_p2))
(setq pt3 (polar pt1 ang_pt3 distance_p1_p34))
(setq pt4 (polar pt1 ang_pt4 distance_p1_p34))
(command "pline" pt2 "w" 0.08 0.08 pt1 pt3 pt4 "")
(POST)
)
(Defun PREV ()
;;; 保存原有系统变量,建立新的系统变量
(Setq cmdech (Getvar "Cmdecho")
oom (Getvar "Orthomode")
osm (Getvar "Osmode")
la (Getvar "Clayer")
)
(Setvar "Cmdecho" 0)
(Setvar "Regenmode" 1)
)
;;; ----------------------- MKLA --------------------------
(Defun MKLA (a b)
;;; 建层: (mala "层名" 颜色号)
(If (= (Tblsearch "layer" a) nil)
(Command "layer" "m" a "c" b a "")
(Command "layer" "t" a "s" a "c" b a "")
)
)
(Defun POST() ;(/ cmdech LA oom osm)
;;; 恢复原有系统变量
(Setvar "Cmdecho" cmdech)
(Setvar "Clayer" LA)
(Setvar "Orthomode" oom)
(Setvar "Osmode" osm)
(Terpri)
(Princ)
) ;Defun
捕捉状态修改说明:
①确定起始点位置前设置捕捉状态endp,mid,cen,int四种基本状态。
②画线前取消捕捉状态。
③画完线再恢复原先的捕捉状态 |
|