cad lisp 微盘 程序_CAD LISP 程序[精校版本]
《CAD LISP 程序[精校版本]》由會員分享,可在線閱讀,更多相關《CAD LISP 程序[精校版本](8頁珍藏版)》請在人人文庫網上搜索。
1、1.計算所有線段總長度(加載后只需框選所有線段便可得出這些線段的總長度) (defun c:LL ()(setvar cmdecho 1)(setq en (ssget (list (0 . spline,arc,line,ellipse,LWPOLYLINE)(setq i 0)(setq ll 0)(repeat (sslength en)(setq ss (ssname en i)(setq endata (entget ss)(command lengthen ss )(setq dd (getvar perimeter)(setq ll (+ dd ll)(setq i (1+ i)。
2、(princ 所選線條總長為:)(princ ll)(princ)2.標注所有線段(加載后只需框選所有線段便可得標注這些線段) (defun c:LLL ()(COMMAND UCS )(setvar cmdecho 1)(SETVAR OSMODE 0)(setq AcadObject (vlax-get-acad-object)AcadDocument (vla-get-ActiveDocument Acadobject)mSpace (vla-get-ModelSpace Acaddocument);選取需要測量的樣條曲線、圓弧、直線、橢圓(setq en (ssget (list (0。
3、 . spline,arc,line,ellipse,LWPOLYLINE)(setq i 0);獲取系統參數textsize(setq shh (getvar textsize)(setq str_hh (strcat n文字高度 : )(setq hh (getdist str_hh)(while hh(setvar textsize hh)(setq hh nil);輸入標注文字高度;循環開始(repeat (sslength en)(setq ss (ssname en i)(setq endata (entget ss)(command lengthen ss )(setq dd (。
4、getvar perimeter)(princ (strcat n長度= (rtos dd 2);尋找代表圖層的字符串(setq aa (assoc 0 endata);獲取圖層名稱(setq aa1 (cdr aa);判斷線條種類(cond(= aa1 SPLINE);如果是spline(progn(setq arcObj (VLAX-ENAME-VLA-OBJECT ss)(setq startPnt1 (vla-get-ControlPoints arcObj)(setq p1(vlax-safearray-list (vlax-variant-value startPnt1)(setq。
5、 x1 (car p1)(setq y1 (cadr p1)(setq z1 (caddr p1)(setq pp1 (list x1 y1 z1)(repeat (- (/ (length p1) 3) 1);循環,尋找最后一個控制點(setq p1 (cdddr p1)(setq x2 (car p1)(setq y2 (cadr p1)(setq z2 (caddr p1)(setq pp2 (list x2 y2 z2)(= aa1 LWPOLYLINE);如果是LWPOLYLINE(progn(setq arcObj (VLAX-ENAME-VLA-OBJECT ss)(setq s。
6、tartPnt1 (vla-get-Coordinates arcObj)(setq p1(vlax-safearray-list (vlax-variant-value startPnt1)(setq x1 (car p1)(setq y1 (cadr p1)(setq z1 (caddr p1)(setq pp1 (list x1 y1 z1)(repeat (- (/ (length p1) 3) 1);循環,尋找最后一個控制點(setq p1 (cdddr p1)(setq x2 (car p1)(setq y2 (cadr p1)(setq z2 (caddr p1)(setq pp。
7、2 (list x2 y2 z2)(t;如果是其他種類線條(progn(setq arcObj (VLAX-ENAME-VLA-OBJECT ss)(setq startPnt1 (vla-get-StartPoint arcObj);獲取起點(setq endPnt1 (vla-get-EndPoint arcObj);獲取終點(setq pp1(vlax-safearray-list (vlax-variant-value startPnt1)(setqpp2 (vlax-safearray-list (vlax-variant-value endPnt1)(setq x1 (car pp。
8、1)(setq y1 (cadr pp1)(setq z1 (caddr pp1)(setq x2 (car pp2)(setq y2 (cadr pp2)(setq z2 (caddr pp2)(setq x (/ (+ x1 x2) 2)(setq y (/ (+ y1 y2) 2)(setq z (/ (+ z1 z2) 2)(setq pt (list x y z);取得線段兩端的中點(setq ang (angle pp1 pp2);獲取角度(if ( (* (/ ang pi) 180) 180)(setq ang (+ ang pi)(command textjbcpt(* (/ ang pi) 180)(strcat (rtos dd 2)(setq i (1+ i)(prin1)(prompt n 個)(command UNDO E)(princ)這樣,鍵入 D1 命令,就可以刪除紅色的圖元了.8優異品。
總結
以上是生活随笔為你收集整理的cad lisp 微盘 程序_CAD LISP 程序[精校版本]的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android水波纹点击动画,andro
- 下一篇: 沉睡者-程序员利用javascript开