 - (defun c:xk (/ SS DIS VLX ENDATA TYP PTS PTE LST)
- ;(if (null (setq ss (car (gsssget "请选择要改变线宽的线" "0_*E,arc")))) (exit))
- (setq ss (ssget))
- (setq ss (ssget->ename-list ss));自己写函数
- (setq dis (getdist "\n请输入线的宽度"))
- (foreach x ss
- (setq vlx (vlax-ename->vla-object x)
- endata (entget x)
- typ (cdr (assoc 0 endata))
- pts (vlax-curve-getstartpoint vlx)
- pte (vlax-curve-getendpoint vlx)
- lst (mapcar '(lambda (x)
- (vlax-get-property vlx x))
- (list 'Layer 'Linetype 'LinetypeScale 'color)))
- (cond
- ((= "LINE" typ)
- (progn
- (entmake
- (list '(0 . "LWPOLYLINE")
- '(100 . "AcDbEntity")
- '(100 . "AcDbPolyline")
- (cons 90 2)
- (cons 10 pts)
- (cons 10 pte)
- )
- );end enmake
- (mapcar '(lambda (x y)
- (vlax-put-property (vlax-ename->vla-object (entlast)) x y))
- (list 'Layer 'Linetype 'LinetypeScale 'color) lst)
- (vlax-put-property (vlax-ename->vla-object (entlast)) 'ConstantWidth dis)
- (entdel x)
- ));end condline
- ((= "CIRCLE" typ)
- (progn
- (circle_ploy endata)
- (mapcar '(lambda (x y)
- (vlax-put-property (vlax-ename->vla-object (entlast)) x y))
- (list 'Layer 'Linetype 'LinetypeScale 'color) lst)
- (vlax-put-property (vlax-ename->vla-object (entlast)) 'ConstantWidth dis)
- (entdel x)
- ));end conrcircle
- ((= "LWPOLYLINE" typ) (vlax-put-property vlx 'ConstantWidth dis))
- (T
- (progn
- (setvar "PEDITACCEPT" 1)
- (vl-cmdf "._pedit" x "")
- (mapcar '(lambda (x y)
- (vlax-put-property (vlax-ename->vla-object (entlast)) x y))
- (list 'Layer 'Linetype 'LinetypeScale 'color) lst)
- (vlax-put-property (vlax-ename->vla-object (entlast)) 'ConstantWidth dis)
- ;(entdel x)
- ));end conrcircle
-
- );end cond
-
-
- );end foreach
- (princ "\n***********************完成*********GS石材自动下单软件 出品 程序订制 老蒋179174787*********")
- (prin1)
- )
- ;;圆转多段线
- (defun circle_ploy (entlst / NORM CENTER R PRO_X)
- (setq norm (assoc 67 entlst) ;图形在模型空间或图纸空间
- center (assoc 10 entlst) ;圆心
- r (cdr (assoc 40 entlst)) ;半径
- pro_x (assoc 210 entlst) ;X轴拉伸方向
- ) ;_ 结束setq
- (entmake
- (list
- '(0 . "LWPOLYLINE")
- '(100 . "AcDbEntity")
- norm
- '(410 . "Model")
- '(100 . "AcDbPolyline")
- '(90 . 3)
- '(70 . 0)
- '(43 . 0.0)
- '(38 . 0.0)
- '(39 . 0.0)
- (list 10 (cadr center) (- (caddr center) r))
- '(40 . 0.0)
- '(41 . 0.0)
- '(42 . 1.0)
- '(91 . 0)
- (list 10 (cadr center) (+ r (caddr center)))
- '(40 . 0.0)
- '(41 . 0.0)
- '(42 . 1.0)
- '(91 . 0)
- (list 10 (cadr center) (- (caddr center) r))
- '(40 . 0.0)
- '(41 . 0.0)
- '(42 . 0.46903)
- '(91 . 0)
- pro_x
- ) ;_ 结束list
- );end entmake
- ) ;_ 结束defun
- (PRIN1)
|