CAD的autolisp程式設計問題 我用下面這個程式還去掉重

2021-06-11 04:38:57 字數 2187 閱讀 4597

1樓:冼睿敏

(defun c:ere ( )

(setq ss (ssget (list (cons 0 "point"))) li '() si 0 ei 0)

(repeat (sslength ss)

(setq cs (ssname ss si) si (1+ si) ce (entget cs))

(if (member (vl-princ-to-string (cdr (assoc 10 ce))) li)

(progn

(command "_.erase" cs "")

(setq ei (1+ ei))

)(setq li (cons (vl-princ-to-string (cdr (assoc 10 ce))) li))))

(princ (strcat "\n在選擇的" (itoa (sslength ss)) "個點中,刪除了" (itoa ei) "個重複的點!"))

(princ)

)上面的程式,我用的是repeat,用while也是一樣的效果。另外,迴圈裡面套迴圈個人覺得不太可取,若物件過多會運算很大。

2樓:甘曦之

不妨試試下面的**:

(defun c:ere()

(setq a (ssget (list(cons 0 "point"))))

(setq i (sslength a))(setq j (1- i))

(while (> j -1)

(setq b (ssname a j))(setq c (entget b))

(if (/= c nil)

(progn

(setq zb(cdr (assoc 10 c)))(setq cfdj(ssget "x" (list (cons 10 zb)(cons 0 "point"))))

(if (/= cfdj nil)(progn(setq cfdj(ssdel b cfdj))(command "erase" cfdj "")))))

(setq j(1- j))))

3樓:

可以用(repeat (sslength i)

.................)試試,用while迴圈i值沒有在迴圈體中修正啊,這樣不成死迴圈了。。

4樓:匿名使用者

請問朋友是否有刪除重複線的lisp命令

5樓:匿名使用者

fgrdtgrrfg

大俠你好,為什麼我的cad在載入完一個autolisp程式後(已經顯示載入成功),但是執行該程式時打不開

6樓:匿名使用者

問過於簡章,函式定義如沒有以c:開頭就不行哈,類似於要這樣:defun c:tmp()

才能在cad中命令列中調入

7樓:

名字為tmp的lsp,內部定義的命令不一定就是tmp,你載入完後有沒有提示讓你輸入什麼命令,如果有的話,按提示輸入。如果沒有,你懂點lsp的話,可以用記事本開啟看一下,自己不清楚的話,問一下給你程式的人。

8樓:匿名使用者

這種情況我沒有遇到過,也沒看明白你得意思,附圖最好。。

cad:運用autolisp語言程式設計繪製下列圖形 100

9樓:

(defun c:aaa () (setq yd (getpoint "select first point")

dd1 (list (car yd) (+ 80 (cadr yd)))

dd2 (list (+ 120 (car yd)) (+ 80 (cadr yd)))

dd3 (list (+ 120 (car yd)) (cadr yd))

y1 (list (+ 20(car yd)) (+ 20 (cadr yd)))

r1 10

y2 (list (+ 110(car yd)) (+ 70 (cadr yd)))

r2 5)

(command "pline" yd dd1 dd2 dd3 "c")

(command "circle" y1 r1)

(command "circle" y2 r2)

(princ))

VB程式設計小問

越界的原因是你的i迴圈和c迴圈都是基於b的大小的,而在迴圈中,又改變了b的大小,所以越界 private sub form click print print 原數列為 dim a as integer,b as integer,c as integer,i as integer,j as inte...

有關陣列的程式設計問題,c語言,有關陣列的程式設計問題,c語言

這個比較短 include define n 100 int main void 學弟,不是學長不想幫你,怕你老師罵我 給你說個思路吧,既然是找最大,那就先初始讓max等於第一個,用陣列記錄學號,用一個num記錄一哥人數 後面跟前面的比,若大,則替換max為後面的,一哥人數 置1,陣列第一個放他的學...

cad圖紙上的比例平面圖是1 100,2我問設計師,圖紙上長

圖紙的單位叫做 bai繪圖單位,你的建築圖du用的zhi是毫米也就是說一圖形單位等於一dao毫米專 一比一百,指的是列印以後,紙上屬的比例,也就是用尺子在紙上量,一毫米相當於100毫米,這是一般建築圖的做法,如果在cad裡邊用查詢的話,查出距離是多少,就是多少毫米,比如說房間的寬度一般是4米,那麼用...