本發(fā)明涉及一種文件防拷貝檢測方法,特別涉及一種SolidWorks文件防拷貝檢測方法。
背景技術(shù):
教師在SolidWorks作業(yè)文件檢查過程中經(jīng)常存在如下問題:1)教師精力有限,不可能對每一個文件來判斷其是否抄襲,2)拷貝方式多變,直接觀察難以確定是否拷貝所得,因此,對現(xiàn)有三維CAD軟件進行二次開發(fā)獲得一個自動防拷貝檢測插件尤為重要,它可極大地節(jié)省教師的工作量并督促學(xué)生獨立完成作業(yè)。
三維CAD的二次開發(fā)主要集中于標(biāo)準(zhǔn)件庫和非標(biāo)準(zhǔn)件庫的設(shè)計擴充,文針對教學(xué)方面防拷貝的二次開發(fā)主要集中于二維設(shè)計軟件AutoCAD,三維CAD軟件在防拷貝方面的二次開發(fā)在國內(nèi)尚未有人研究。國內(nèi)對AutoCAD防拷貝檢測的研究如下:潘亞娣等通過對比AutoCAD文件的系統(tǒng)變量TDCREATE的值來判別文件是否拷貝所得,但是這種方法只能用來檢測文件是否拷貝,若只部分地拷貝文件內(nèi)容則無法判定。李迎春等在其基礎(chǔ)上又提出檢測樣條曲線的特征信息,通過檢測學(xué)生作業(yè)中自定的樣條曲線起點與終點的正切值來判別,進一步提高了檢測結(jié)果的準(zhǔn)確度,但是該方法具有較大的局限性,自定樣條曲線易被單獨修改,在三維CAD軟件中較少用到樣條曲線等自定義對象。大雄CAD是西北工業(yè)大學(xué)自主開發(fā)的二維CAD軟件系統(tǒng),通過在“新建圖形”過程中,添加了強制性輸入學(xué)號、姓名的步驟,將學(xué)生輸入的學(xué)號、姓名作為該圖形文件的”特征標(biāo)記”加密保存圖形文件中,該“特征標(biāo)記”將作為后續(xù)是否允許拷貝、借用操作的判斷依據(jù),從根源上杜絕了拷貝的可能性[賈國良,王淑俠,廖星,et al.預(yù)防學(xué)生計算機繪圖實驗課作業(yè)抄襲的探討[C].第三屆國際交互設(shè)計大會,2013:138-140.]。但是西工大擁有該軟件的自主知識產(chǎn)權(quán),易于進行修改,并且SolidWorks文件基于特征且非拷貝方式也與二維CAD完全不同,所以無法直接應(yīng)用與SolidWorks軟件中。
技術(shù)實現(xiàn)要素:
為了克服現(xiàn)有文件防拷貝檢測方法復(fù)雜而導(dǎo)致實用性差的不足,本發(fā)明提供一種SolidWorks文件防拷貝檢測方法。該方法通過依次讀取文件夾內(nèi)所有SolidWorks文件的特征屬性信息,然后對比創(chuàng)建時間是否相同、特征成型時間是否極短、特征創(chuàng)建日期是否位于布置作業(yè)的時間區(qū)間內(nèi)以及創(chuàng)建文件時錄入個人信息是否正確來判斷文件是否拷貝得來。本發(fā)明通過兩種方式對SolidWorks文件拷貝進行檢測,第一種針對多種拷貝方式分別進行信息提取與對比,篩選出存在拷貝的文件。第二種對多種拷貝方式使用同一種信息進行檢測對比。能夠節(jié)省教師檢查作業(yè)的精力,并且能夠篩選出全部的作業(yè)拷貝文件,實用性好。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案:一種SolidWorks文件防拷貝檢測方法,其特點是包括以下步驟:
步驟一、當(dāng)檢測特征屬性不變的拷貝時,使用Windows系統(tǒng)自帶的文件拷貝功能,即在不打開文件的情況下,直接復(fù)制粘貼文件,或打開軟件后使用“另存為”功能進行拷貝,拷貝后,其部分關(guān)鍵特征屬性不發(fā)生改變。
檢測方法如下:
步驟1:遍歷文件夾內(nèi)所有SolidWorks文件。
步驟2:依次讀取每個SolidWorks文件中前三個特征的創(chuàng)建日期屬性,并存儲。
步驟3:由于創(chuàng)建日期屬性精確到秒,并且每個人開始建模與建模速度均不相同,如果存在前三個特征的創(chuàng)建日期相同的文件,則判斷其經(jīng)過拷貝所得。對比所有檢測到的創(chuàng)建日期屬性,篩選出前三個特征創(chuàng)建日期均相同的文件。
步驟4:對比文件中特征的創(chuàng)建日期屬性與老師布置作業(yè)時間區(qū)間,如果不在老師布置作業(yè)的時間區(qū)間內(nèi),則判斷為拷貝所得。
步驟二、當(dāng)檢測特征屬性改變的拷貝時,將SolidWorks擬拷貝的源文件另存為step或igs文件格式后,再使用SolidWorks的特征重建功能重新生成模型,再存為Solidworks常用的文件格式,此時模型中的每一個特征的關(guān)鍵特征屬性相比源文件都發(fā)生了變化。
檢測方法如下:
步驟1:遍歷文件夾內(nèi)所有SolidWorks文件。
步驟2:依次讀取每個SolidWorks文件中前三個特征的創(chuàng)建日期屬性,并存儲。
步驟3;由于另存為改變文件格式為step或igs,通過重新打開進行特征重建得來的拷貝文件,最后在另存為Solidworks常見格式的文件,2次格式轉(zhuǎn)換前后文件的大小均發(fā)生了變化。因其關(guān)鍵特征屬性會隨之變化,所以無法進行特征屬性對比。但是由于這些特征由系統(tǒng)自動生成,故其特征的成型時間遠(yuǎn)遠(yuǎn)小于手動建模,因此檢測其特征成型時間是否極短,判斷該文件是否拷貝所得。
步驟三、信息錄入檢測法。
信息錄入檢測要求學(xué)生在創(chuàng)建文件時,輸入自己的個人信息,并存儲在這些隱藏特征中,這些信息只能在創(chuàng)建文件時輸入一次,此后不可更改。
步驟1:學(xué)生通過插件進行文件創(chuàng)建,當(dāng)且僅當(dāng)創(chuàng)建文件時輸入自己的個人信息,然后將該信息存儲在第一個隱藏特征的特征屬性中。
步驟2:教師收集作業(yè)后對作業(yè)文件夾進行遍歷,檢測系統(tǒng)依次讀取每個文件中特定隱藏特征的對應(yīng)特征屬性。
步驟3:判斷所有讀取到的隱藏特征的特征屬性信息,篩選出錯誤的特征屬性信息,判斷其為拷貝所得。
當(dāng)且僅當(dāng)創(chuàng)建文件時學(xué)生能夠錄入個人信息,此后無法更改,普通拷貝不會改變錄入的個人信息,改變格式并經(jīng)過特征重建重新生成的SolidWorks文件會重置該特征屬性,導(dǎo)致輸入信息為空。通過檢測錄入信息與學(xué)生上交作業(yè)文件的文件名中個人信息是否相同,判斷該文件是否拷貝所得。
本發(fā)明的有益效果是:該方法通過依次讀取文件夾內(nèi)所有SolidWorks文件的特征屬性信息,然后對比創(chuàng)建時間是否相同、特征成型時間是否極短、特征創(chuàng)建日期是否位于布置作業(yè)的時間區(qū)間內(nèi)以及創(chuàng)建文件時錄入個人信息是否正確來判斷文件是否拷貝得來。本發(fā)明通過兩種方式對SolidWorks文件拷貝進行檢測,第一種針對多種拷貝方式分別進行信息提取與對比,篩選出存在拷貝的文件。第二種對多種拷貝方式使用同一種信息進行檢測對比。能夠節(jié)省教師檢查作業(yè)的精力,并且能夠篩選出全部的作業(yè)拷貝文件,實用性好。
下面結(jié)合附圖和具體實施方式對本發(fā)明作詳細(xì)說明。
附圖說明
圖1是本發(fā)明SolidWorks文件防拷貝檢測方法的流程圖。
具體實施方式
參照圖1。本發(fā)明SolidWorks文件防拷貝檢測方法具體步驟如下:
一、特征屬性檢測方式。
根據(jù)特征屬性分類,拷貝方式分為特征不變的拷貝與特征改變的拷貝。結(jié)合實例檢測步驟如下:
步驟1:檢測系統(tǒng)遍歷文件夾內(nèi)所有的SolidWorks作業(yè)文件,并存儲其位置與文件名信息
步驟2:依次讀取每個SolidWorks文件,遍歷其特征信息。
步驟2.1:按照步驟1存儲的文件信息,依次讀取文件
步驟2.2:從首特征開始遍歷,讀取前三個特征的創(chuàng)建日期屬性,并返回
步驟2.3:存儲每個文件的位置與創(chuàng)建日期表,保存。
步驟3:由于創(chuàng)建日期屬性精確到秒,并且每個人開始建模與建模速度均不相同,如果存在前三個特征的創(chuàng)建日期相同的文件,則判斷其經(jīng)過拷貝所得。對比所有檢測到的創(chuàng)建日期屬性,篩選出前三個特征創(chuàng)建日期均相同的文件。
步驟3.1:依次遍歷信息存儲表
步驟3.2:存儲表按照讀取到的創(chuàng)建日期字串進行排序,對于相鄰日期字串相同的文件將返回其位置信息
步驟3.3:保存所有返回信息到對應(yīng)容器中,每組信息代表一組源文件與拷貝文件
步驟4:對比文件中特征的創(chuàng)建日期屬性與老師布置作業(yè)時間區(qū)間,如果不在老師布置作業(yè)的時間區(qū)間內(nèi),則判斷為拷貝所得。
步驟4.1:依次遍歷信息存儲表
步驟4.2:遍歷每個存儲表中日期信息,檢測是否位于教師布置作業(yè)的時間區(qū)間,返回超過布置作業(yè)時間區(qū)間的文件并保存。
步驟5;由于另存為改變文件格式為step或igs等,通過重新打開進行特征重建得來的拷貝文件,最后在另存為Solidworks常見格式的文件,2次格式轉(zhuǎn)換前后文件的大小均發(fā)生了變化。因其關(guān)鍵特征屬性會隨之變化,所以無法進行特征屬性對比。但是由于這些特征由系統(tǒng)自動生成,故其特征的成型時間遠(yuǎn)遠(yuǎn)小于手動建模,因此檢測其特征成型時間是否極短,可判斷該文件是否拷貝所得。
步驟5.1:依次遍歷信息存儲表
步驟5.2:遍歷存儲表中每個文件前三個特征的創(chuàng)建日期,檢測其時間差是否位于2s內(nèi),返回時間差小于等于2s的文件
以上便可檢測出經(jīng)過兩種方式拷貝得到的作業(yè)文件。
二、信息錄入檢測方式,結(jié)合實例步驟如下:
信息錄入檢測方式要求學(xué)生在客戶端安裝信息錄入插件,該插件會在新建文件時彈出信息錄入窗口,學(xué)生完成信息錄入后,會將該信息存儲到隱藏特征的一個特征屬性中。該特征屬性拷貝過程無法進行更改,更改文件格式并使用SolidWorks軟件進行特征重建會將該特征屬性變?yōu)榭罩?。并且要求學(xué)生上交作業(yè)時,作業(yè)文件名包含自己的學(xué)號信息。
步驟1:學(xué)生通過插件進行文件創(chuàng)建,當(dāng)且僅當(dāng)創(chuàng)建文件時可以輸入自己的個人信息,然后將該信息存儲在第一個隱藏特征的特征屬性中。
步驟1.1:點擊新建文件按鈕,彈出模態(tài)對話框,要求學(xué)生輸入學(xué)號信息。
步驟1.2:輸入完成后,查找SolidWorks文件隱藏特征FavoriteFolder,并將輸入信息賦值給MaterialUserName該特征屬性,關(guān)閉模態(tài)對話框。
步驟2:教師收集作業(yè)后對,檢測系統(tǒng)讀取每個文件的位置信息。檢測系統(tǒng)對作業(yè)文件夾進行遍歷,依次次讀取每個文件中特定隱藏特征的對應(yīng)特征屬性
步驟2.1:讀取作業(yè)文件夾內(nèi)所有SolidWorks文件的位置信息,并存儲。
步驟2.2:按照位置信息依次讀取每個SolidWorks文件,讀取對應(yīng)特征的特征屬性并保存。
步驟3:判斷所有讀取到的隱藏特征的特征屬性信息,對比該特征屬性信息與作業(yè)文件名中的學(xué)號是否相同,如不同,則返回該信息并存儲。
綜上,通過可通過兩種檢測方式對拷貝文件進行檢測判斷,第一種防拷貝檢測方式的檢測結(jié)果分類清晰,教師收集作業(yè)即可使用,對學(xué)生完成作業(yè)的客戶端與上交作業(yè)格式業(yè)務(wù)要求。第二種防拷貝方式檢測方式清晰明了,依次遍歷對比即可得出結(jié)果,效率與準(zhǔn)確度極高。這兩種檢測方式各有互補,也適用于不同的教學(xué)環(huán)境當(dāng)中,對于學(xué)生作業(yè)的自動批改檢測可以極大地節(jié)省教師的時間與精力,使得教師更加專注于課堂與學(xué)生,可以明顯改善教學(xué)效果與教學(xué)質(zhì)量。