beneman 发表于 2014-7-5 11:49:30

修改线宽怎么没有起作用呢

(defun c:xs()
(setq lw_new (getint "输入新的线宽"))
(setq l_list (entget (car (entsel "选择图元"))))
(setq lw_new (cons 370 lw_new))
(setq l_list (cons lw_new l_list))
(entmod l_list)
(princ)
)

香田里浪人 发表于 2014-7-5 19:08:00

;;;修改线宽
(defun C:xgxk (/ p l n nw chm en ow enm e1)
      (setq p (ssget))
      (if p (progn
      (setq l 0 n (sslength p) chm 0)
      (while (< l n)
          (setq enm (cdr (assoc 0 (setq en (entget (ssname p l))))))
          (if(or (= enm "LWPOLYLINE") (= enm "POLYLINE") (= enm "LINE") (= enm "ARC")(= enm "CIRCLE"))
             (progn
               (if (zerop chm) (progn
               (if (and (/= enm "LINE") (/= enm "ARC")) (setq ow (cdr (assoc 40 en)))
                   (setq ow 0))
                (princ "\n新线宽<")
                (princ (rtos (/ ow 1) 2 2))
                (setq nw (getreal "mm>:"))
                (if (null nw) (setq nw ow))
            ))
           (if (= enm "CIRCLE")
             (progn
             ;(setq angle1 (/ pi 2))
             (setq pt1 (polar (CDR(ASSOC 10 EN)) 0 (CDR(ASSOC 40 EN))))
             (setq pt2 (polar (CDR(ASSOC 10 EN)) pi (CDR(ASSOC 40 EN))))
             (command ".BREAK" pt1 pt2)
             (command "pedit" (ssname p l) "y" "w" nw "c" "")
             ))
           (if (or (= enm "LINE") (= enm "ARC"))
             (command "pedit" (ssname p l) "y" "w" nw "")
             
             (if (or(= enm "LWPOLYLINE") (= enm "POLYLINE"))
                   (command "pedit" (ssname p l) "w" nw "")
             )
             )
            (setqchm (1+ chm))
          ))
          (setq l (1+ l))
      )
      ))
      (princ "改了") (princ chm) (princ "条线.")
      (PRINC)
)

ll_j 发表于 2014-7-5 21:09:45

这是显示线宽,想显示出来需要设置系统变量LWDISPLAY为“on”。
页: [1]
查看完整版本: 修改线宽怎么没有起作用呢