raobinhsh 发表于 2009-8-26 07:15:00

[求助]将园弧、斜线变化成有多根平行短线组成的线带

<font face="宋体" size="2">在一个图内,有一些圆弧、斜线,要求用一些间距由设计人员手工输入间距的平行于设计人员所选择的一根线的平行短线代替,其图层和颜色同被其所取代的园弧和斜线,具体要求见图</font><br/><br/><!--Element not supported - Type: 8 Name: #comment-->

ZZXXQQ 发表于 2009-8-29 13:46:00

一个另类转换。注意单选方向。

;画平行短线 明经 ZZXXQQ 2009.8.29
(defun c:tt ()
(setvar "CMDECHO" 0)
(if (and (setq d1 (getdist "\n短线间隔 :"))
          (setq d2 (getdist "\n短线长度 :"))
          (setq s1 (entsel "\n选择才参考线条 :"))
          (setq ent (entget(car s1)))
          (wcmatch (cdr(assoc 0 ent)) "LINE")
) (progn
(setq oldla (getvar "CLAYER"))
(setq oldco (getvar "CECOLOR"))
(setq ang (/ (* (angle (cdr(assoc 10 ent)) (cdr(assoc 11 ent))) 180) pi))
(setq lnm (cdr(assoc 8 ent)))
(setvar "CLAYER" lnm)
(if (setq cn (cdr(assoc 62 ent))) (command "-color" cn))
(while (and (setq s2 (entsel "\n选择要转换线条 :"))
            (setq ent1 (entget(car s2)))
            (wcmatch (cdr(assoc 0 ent1)) "ARC,CIRCLE,*LINE"))
   (command ".offset" d2 (cadr s2) (cadr s2) "")
   (setq s3 (entlast))
   (command "hatch" "U" ang d1 "N" (car s2) "L" "")
   (entdel s3) (entdel (car s2))
)
   (if cn (command "-color" oldco))
   (setvar "CLAYER" oldla)
))
(setvar "CMDECHO" 1)
(princ)
)

5061220 发表于 2009-8-29 20:20:00

<p>学习,谢谢<strong><font color="#da2549" face="Verdana">ZZXXQQ</font></strong></p>
页: [1]
查看完整版本: [求助]将园弧、斜线变化成有多根平行短线组成的线带