999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

序號標注的AutoCAD二次開發

2009-04-29 00:00:00代艷霞,肖善華
電腦知識與技術 2009年36期

摘要:該文介紹了利用AutoLISP與DCL語言開發工具,開發符合國家機械制圖標準的機械制圖序號標注實用工具的設計思想與實施方法。該實用工具,擴充了AutoCAD的功能,提高了機械制圖的繪圖效率,有一定的實用價值和推廣意義。

關鍵詞:序號標注;AutoCAD二次開發;CAD

中圖分類號:TP391文獻標識碼:A文章編號:1009-3044(2009)36-10549-02

Redevelopment of Serial Number Marking by AutoCAD

DAI Yan-xia, XIAO Shan-hua

(Yibin Vocational and Technical College, Yibin 644003, China)

Abstract: This paper introduces the design idea and actualize method which make use of Auto LISP and DCL language to develop the utility tools of marking the serial number. This tools accords with the national standard of mechanical drawing of our country, and have expand the function of AutoCAD, It can improve the efficiency of drawing by use of this tools in practice, and have a practical value of popularization.

Key words: serial number marks; redevelopment of AutoCAD; CAD

當前,CAD技術在企業的設計中被廣泛的使用,其中AutoCAD是一種使用最普遍的功能強大的通用繪圖軟件,但其交互式繪圖效率卻相對較低。但AutoCAD具有開放的體系結構,允許用戶和開發者在幾乎所有方面對其進行擴充和修改(即進行二次開發),能夠最大程度地滿足用戶的特殊要求。二次開發是CAD應用取得實效的關鍵環節。通過對AutoCAD進行二次開發,可以使繪圖工作變的簡單而高效。序號標注是在機械繪圖過程中被經常使用到的繪圖工作,使用AutoCAD的交互繪圖方式進行機械裝配圖的序號標注十分煩瑣,為了減少勞動強度,提高繪圖效率,對其進行二次開發是十分必要的。

1 設計思路

根據GB/T4458.2—1984《裝配圖中零、部件序號及其編排方法》的規定來設計,用戶通過DCL界面選擇序號表達方式和指引線表示方法后,再在屏幕上指定裝配圖中的零件和序號的書寫位置即可完成單個或整個裝配圖的序號標注。而且為了方便用戶操作,標注多個序號時,程序應有序號遞增功能。其設計開發思路流程如圖1所示。

2 程序設計及實施

2.1 參數的確定

根據GB/T4458.2—1984進行設計,主要有序號表達和指引線表達兩大內容。序號的表達方法有兩種:1)在指引線的水平線上或圓內注寫序號,其字高比裝配圖中所注尺寸數字的高度大一號或兩號;2)在指引線附近注寫序號,其字高比裝配圖中所注尺寸數字高度大兩號。通常來說,在機械繪圖中人們更習慣選擇第一方法。指引線的表達中,指引線的水平線要進行左右方向判斷,由于對于一組緊固件以及裝配關系清楚的零件組,可以采用公共指引線,所以需要考慮使用公共指引線進行連續序號標注。另考慮用戶在實際操作中可能分多次標注,應設置序號的其始數。

綜上,確定序號標注的參數有:序號表達方式、指引線表達方式、字體高度、序號總數、起始序號、終止序號。另有指定需要標注的零件及序號標注位置在程序運行中指定。

2.2 界面設計

根據確定的參數用DCL設計界面。序號表達方式與指引線表達方式用圖像按鈕來完成。由于標注序號時需要比裝配圖中所注尺寸數字的高度大一號或者兩號,所以在界面設計中用下拉列表框控件來完成字體高度的輸入。

在標注序號時,序號的數字通常是連續的,而且當單個序號連續標注的時候,為了簡化用戶操作,人們常常希望能夠一次標注一定數量的序號,所以引入一個序號總數概念,由序號總數的數值來決定標注的序號數值的變化范圍。再引入起始序號和終止序號兩個變量來完成對連續序號標注時,連續標注中序號數值的變化范圍。序號總數、起始序號、終止序號用三個編輯框來完成。

在指定序號表達方式后及標注方法以后,操作者就需要選擇所需標注的樣式,為了能使用公共指引線進行連續序號標注,所以需要將程序分為單個序號標注與連續序號標注兩個部分。在序號的連續標注樣式中,由于存在指引線的水平線或圓圈有左右連續和上下連續兩種樣式,所以需要將連續標注樣式再分為連續上下標注和連續左右標注兩個部分。界面設計如圖2所示。

2.3 序號數字的自動遞增

在標注序號時,序號通常是按照順序依次遞增的。為簡化用戶操作,在標注序號過程中,不需要用戶輸入序號數字,因而序號數字必須是自動遞增的。如果不對序號數字自動遞增,則在每次運行程序進行序號標注的時,都需要人工輸入一個序號數字,操作比較繁瑣,且容易出錯。所以,對序號數字進行自動遞增是十分有必要的。

序號數值的自動累加是依靠AutoLISP語言中的(1+ 數值)數學運算功能函數來完成的,將序號數值變量自加1,然后再賦值給序號數值變量,就可以做到序號數值的累加。

2.4 序號表達方式的保持

在序號標注時,同一張圖紙只能是一個序號表達方式,因而序號表達方式的保持是十分重要的問題。與序號數字自動遞增一樣,序號表達方式的保持也主要是簡化用戶的操作。如當選用圓圈序號表達方式進行序號標注時,完成一個序號標注后,需要標注下一個序號,如果序號表達方式不能保持,則程序會自動使用默認值(水平線式),操作者需要再次選擇圓圈樣式才可以完成第二次標注。所以在程序的設計中,保持序號表達方式是很有必要的。保持的序號表達方式一直要到操作者完全退出程序才重新變為默認值。

序號表達方式的保持是依靠對應變量的值進行判斷來完成的。

(defun keep_steyle( )

(setq new_style old_style);將函數運行后的old_style值返回給new_style

(if new_style (setq old_style new_style)

(setq old_style 1))

如果new_style為非空,將new_style賦值給old_style,使其保持old_style的值完成動作,如果old_style為空,則為old_style初值為1。old_style為序號樣式按鈕激活的數值。old_style的值的取得是由動作回調命令action_tile命令定義的,如:(action_tile “img” “(setq old_styl 1)”)。

將序號表達方式的保持方法移植使用到標注樣式上也可以對標注的樣式進行保持。

2.5 字體高度與水平線及圓的配合

由于不同裝配圖中尺寸標注的字體大小不同,為滿足不同裝配圖的要求,因而序號標注字體的大小應能根據裝配圖中尺寸標注的字體的大小進行改變。序號字體大小改變后,標注指引線的水平線及圓圈就不能固定,否則就不協調,因此必須由程序來完成序號字高與水平線及圓圈的協調配合。序號字體高度與水平線長和圓圈的直徑大小的配合是依靠序號字體高度與水平線長和直徑大小的比例計算得出的。通過調試得出字高乘1.6比較適合協調。如圖3所示。

由于字體高度一旦確定,在標注同一個裝配圖時,將不再改變,所以字體高度的大小也應該保持不變,方法與序號表達方式的保持類似。

2.6 起始序號與終止序號的顯示

在序號標注過程中,操作者不一定能記住序號的數字,且當操作者需要變動某些標注時,沒有確切的序號數字顯示出來,不易保證序號標注的正確性。如果能將所要標寫的序號數字顯示出來,就可以給操作者提供極大的方便。

將序號數字顯示在起始序號中,當進行單個序號標注時,終止序號的數值自動與序號數值對齊。當進行序號的連續標注時,起始序號自動對應遞增后的序號數字,終止序號由操作者指定,就可以很好的提供序號標注數字的信息。

在程序中,利用一個字符變量和set_tile命令相配合就能做到提供這些信息。

如:(setq ans (rtos num_start))

;賦值ans為字符型變量 為后來帶入起始序號和終止序號set_tile做準備

(set_tile \"num_start\" ans);設定起始序號數為變量

(set_tile \"num_end\"ans) ;設定終止序號數為變量

2.7 序號指引線的水平線指向與連續序號標注方向判斷

在繪制水平線式的序號樣式時,水平線的指向有向左和向右兩個方向,當給定了指引線所指零件的點坐標后如何由程序來自動判斷水平線的指向呢?可以通過水平線所在直線上的一個端點坐標與零件點坐標的坐標系上的x值的大小來判斷如圖4所示。

在程序中,使用if判斷語句對其進行判斷。

如:(if (< (car pt1) (car pt2));如果x1

(setq ang 0);則定義ang為0否則

(setq ang pi));定義ang為π,ang為角度變量

在序號的連續標注中,當序號進行連續上下標注時,僅判斷水平線的指向是不夠的,還需要為序號連續方向進行判斷。通過水平線所在直線的一個端點坐標與零件點坐標的y值大小來判斷。如圖5所示。

在程序中,使用if判斷語句對其進行判斷。

如:(if(<(cadr p1)(cadr p2));如果y1

(setq ang(* 0.5 pi));則定義ang為0.5π

setq ang(* -0.5 pi)));否則定義ang為-0.5π,ang為一個角度變量。

將水平線的指向與序號的連續方向結合起來就可以很好的完成連續序號標注中所需要的兩個方向的判斷。2.8 運行實例程序運行時,在界面中選擇所需要的字體高度,填寫序號總數、起始序號、終止序號,點擊選取需要的序號樣式以及標注樣式。圖6為選擇字體高度為5,序號總數為1,起始序號為10,終止序號為13,序號樣式為圓圈樣式,標注樣式為上下連續標注的界面的運行界面。圖7為實際不同標注樣式在AutoCAD中的標注效果。

3 結論

本軟件經過多次調試運行,效果十分理想,能在Auto CAD 2004版本以上運行。序號標注符合國家機械制圖標準,可用于實際工程圖紙設計的序號標注,有較好的實用性和應用性,有一定的推廣和參考價值。

參考文獻:

[1] 符純華.計算機輔助設計[M].成都:西南交通大學出版社,2006.

[2] 汪琪美.AutoCAD13對話框與驅動程序設計[M].北京:海洋出版社,1998.

[3] 郭劍鋒,陳杉,王寧.用Visual Lisp開發AutoCAD2000應用程序[M].北京:人民郵電出版社,2000.

[4] 成大先.機械設計手冊(單行本).機械制圖、極限與配合[M].北京:化學工業出版社,2004.

主站蜘蛛池模板: 女人毛片a级大学毛片免费| 久久青青草原亚洲av无码| 欧美成在线视频| 亚洲中文字幕av无码区| 午夜毛片免费看| 一级一级特黄女人精品毛片| 国产国语一级毛片在线视频| 中文成人在线| 国产一区二区三区日韩精品| 四虎成人免费毛片| 国产精品第| yjizz国产在线视频网| 国产传媒一区二区三区四区五区| 欧美日韩亚洲综合在线观看| 欧美一区二区人人喊爽| 日本尹人综合香蕉在线观看| 在线观看网站国产| 国产午夜一级毛片| 九九热精品视频在线| 99久久国产综合精品2020| 久久久黄色片| 色综合久久88色综合天天提莫 | 亚洲AV色香蕉一区二区| 情侣午夜国产在线一区无码| 九九热精品免费视频| 欧美日韩一区二区在线免费观看| av一区二区无码在线| 免费看久久精品99| 原味小视频在线www国产| 最近最新中文字幕在线第一页| 国产91视频观看| 中文字幕无码电影| 日本午夜在线视频| 9966国产精品视频| 成人午夜天| 亚洲一区二区三区麻豆| 国产日本欧美在线观看| 国产精品网拍在线| 国产成人91精品| 国产福利在线免费| 欧美成a人片在线观看| 亚洲无线国产观看| 国产精品七七在线播放| 日韩精品久久久久久久电影蜜臀| 亚洲精品777| 中字无码av在线电影| 一本色道久久88| 特级精品毛片免费观看| 人人91人人澡人人妻人人爽| 69国产精品视频免费| 亚洲A∨无码精品午夜在线观看| 青青久视频| 综合天天色| 亚洲区视频在线观看| 国产乱视频网站| 国产精品xxx| 波多野结衣一区二区三视频 | 国产在线观看人成激情视频| 老司机精品一区在线视频| 欧美成人A视频| 99精品免费欧美成人小视频| 亚洲无码高清视频在线观看| 色综合久久久久8天国| 国产永久在线观看| 国产午夜福利片在线观看| 中文字幕2区| 久久久久亚洲AV成人人电影软件| 四虎精品国产AV二区| 综合久久久久久久综合网| 成人国产精品网站在线看| 久久这里只精品国产99热8| 亚洲美女一区二区三区| 亚洲无码91视频| 在线观看91香蕉国产免费| 无码日韩人妻精品久久蜜桃| A级毛片高清免费视频就| 99热这里只有精品免费国产| 欧美国产日韩在线观看| 91无码国产视频| 女人一级毛片| 毛片网站在线播放| 精品人妻无码区在线视频|