回覆列表
  • 1 # 使用者2208331432708

    如何建立Lisp程式AutoLisp程式碼可以在任意的文字編輯器中建立.不過AutoCAD也提供了Visual Lisp編輯器,可以支援語法高亮,除錯編譯什麼的.開啟Visual Lisp編輯器有兩種方式:1. AutoCAD2008及之前的版本,在選單欄“工具(Tools)"下面,選擇”AutoLisp"---->"Visual Lisp編輯器".(”AutoLisp"---->"匯入應用"這個命令是用來載入AutoLisp指令碼的.2. AutoCAD2009及之後的版本, 在功能區的”管理“選項卡里可以直接開啟Visual Lisp編輯器。開啟Visual Lisp編輯器之後新建一個檔案,並另存為Lisp原始檔。然後就可以在編輯窗口裡輸你的程式碼了。程式碼編輯並除錯確認無錯誤後,就可以在AutoCAD中使用了。左邊的按鈕表示立即運行當前程式碼,如果有錯誤就會提示出來,右邊按鈕是切換到CAD視窗。如果不需要再修改程式碼了還可以將程式碼進行編譯以加速執行。根據嚮導一步步進行編譯很簡單的。如果在其他CAD圖形檔案中需使用當前程式碼檔案或編譯後的檔案,就按上面第一點的,或者在命令列輸入”ap",開啟匯入應用的對話方塊。1是用來臨時匯入的,2是將程式加入CAD的啟動組。以上。具體如何入門AutoLisp程式設計,可以參照AutoCAD 完全應用指南 (豆瓣)這本書。lisp解決重複性勞動問題在設計和繪圖中,你覺得都是簡單粗暴的重複性工作,就可以考慮用AutoLisp來代替你做。首先,AutoLisp也是一個程式設計語言,屬於Common Lisp的子集,同時加入了很多自定義的函式。即然是一個程式語言,就是其他程式語言能做的,它也能做,只是他的lisp語法跟一般的語言有些差另就是了,但是如果是一個沒有VB、C#、C++(對應於AutoCAD的開發方式分別是VBA,.net,ObjectArx)的基礎的人來說,AutoLisp是很簡單而且特別容易上手的一個語言。作為一個程式語言,AutoLisp能做的很多:擴充AutoCAD的原有命令。任何帶有C:字首的AutoLisp函式,在AutoCAD中都可以像"line" "circle" "dim"等命令一樣使用。編寫程式碼直接根據國標相簿要求來繪出一些常用相簿標準件什麼的,或是代替人查詢各種設計手冊中的相關資料並繼續使用。進行引數化繪圖,對於一些不特別複雜的系統,提供窄範圍、大深度的專業設計自動化或者輔助系統,如發動機裝配工具設計、縱使機主軸箱設計等。DWG檔案本質上是AutoCAD在圖形生成和編輯中使用的資料庫,可以將一些非圖形資訊的資料(粗糙度,高度,厚度。。)等存於DWG檔案中作 為非圖形資料庫檔案,然後利用Lisp程式進行讀取等。各種AutoCAD二次開發方式的比較由於 .net語言和c++的學習曲線比較陡峭,所以簡單易學的AutoLisp經常與VBA進行對比。(當然如果有VB的基礎還是直接學VBA好了。)AutoLISP擅長建立新命令和產生已有命令的連線。VBA擅長執行包括在其他應用程式中的元件,如Microsoft的Excel和Access。AutoLISP是基於表處理的程式設計體系,它允許程式設計師隨意地儲存和操作傳送資訊,然而VBA部件包括資料和對複雜情況的各種有效操作,這就是問題變得複雜的地方。(/選擇AutoLISP還是VBA)不過,在AutoCAD2000開始,Autodesk公司就在AutoCAD中加入了Visual Lisp編輯器,引入了許多新函式擴充AutoLisp的功能,並支援ActiveX物件的訪問方式,所以使用AutoLisp來與Word\Excel等程式進行互動也是變簡單了。另外,在建立帶GUI圖形介面的應用程式上,VBA當然是所見即所得的了,而AutoLisp是透過DCL檔案來實現GUI的(語法很簡單,但做不到所見即所得).這點是AutoLisp略遜一籌了。

  • 2 # 藍風24

    定義一個全域性變數int start //記錄查詢的位置

    在查詢中新增如下程式碼:

    start = RichTextBox1.Text.IndexOf("a");

    RichTextBox1 .Select(start,1);

    在查詢下一個中新增如下程式碼:

    start = RichTextBox1.Text.IndexOf("a", start+1);

    RichTextBox1.Select(start, 1); //1為查詢字串的長度,因為我這裡查詢的是“a”所以簡寫為1,實際操作中,要查詢的字串可能來自輸入的值例如一個串string str,則可用str.length代替。

    替換功能如下:

    RichTextBox1.Text = RichTextBox1.Text.Replace(RichTextBox1.SelectedText , "test"); //只不過是這裡完成的是全部替換,如果想單個替換的話,可能還需另外寫些方法。

    不知道是否能明白?

  • 中秋節和大豐收的關聯?
  • 霧計算是如何構成的?