这就是我目前所拥有的。我认为我没有正确集成您的部分,因为我在选择集方面出错。
-
- (defun C:yellow_lines (/ *error* ang col clr coords dwo elist midp offsetted ofpt osm p1 p2 p3 pline a b c SUCE SUOM SUSM SUAB SUAD SUCL SUCR)
- (setq SUCE (getvar "cmdecho"))
- (setq SUOM (getvar "orthomode"))
- (setq SUSM (getvar "osmode"))
- (setq SUAB (getvar "angbase"))
- (setq SUAD (getvar "angdir"))
- (setq SUCL (getvar "clayer"))
- (setq SUCR (getvar "cecolor"))
- (command "_.-layer" "_N" "CCC_LAYOUT_Proposed_Road_Lining_Yellow_Lines" "_C" "2" "CCC_LAYOUT_Proposed_Road_Lining_Yellow_Lines" "" )
- (setvar "clayer" "CCC_LAYOUT_Proposed_Road_Lining_Yellow_Lines")
-
- (progn
- (princ "\n Select POLYLINE(S) only please :")
- (setq pline (ssget '((0 . "LWPOLYLINE,POLYLINE"))))
- elist (entget pline)
- )
- ;(setq pline (entlast)
- ;elist (entget pline)
- ;(setq elist (entmod (subst (cons 70 1)(assoc 70 elist)elist)));<--close pline
- (entmod (subst (cons 43 0)(assoc 43 elist)elist));<--set line width to zero
- (setvar "draworderctl" 3)
- (command "_.draworder" pline "" "_F");<--set pline's draw order to front
- (setq coords (vl-remove-if (function not)
- (mapcar (function (lambda (x)
- (if (= 10 (car x))(cdr x))))
- elist))
- )
- (setq p3 (caddr coords)
- p1 (car coords)
- ang (angle p1 p3)
- ofpt (polar p3 ang 1.0)
- )
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- (command "._offset" 0.1 pline ofpt "")
- (setq offsetted (entlast)
- elist (entget offsetted)
- )
- (if (assoc 62 elist)
- (setq elist (subst (cons 62 1)(assoc 62 elist) elist ))
- (setq elist (append elist (list '(62 . 1))))
- )
- (entmod elist)
- (command "._pedit" offsetted "_W" 1.0 "")
- (command "_.draworder" offsetted "" "_B");<--set pline's draw order to back
- (setq coords (vl-remove-if (function not)
- (mapcar (function (lambda (x)
- (if (= 10 (car x))(cdr x))))
- elist))
- )
- (setq p2 (car coords)
- midp (mapcar (function (lambda( a b)(/ (+ a b) 2)))
- p1 p2)
- )
- (command "_.chprop" offsetted "LA" "CCC_LAYOUT_Proposed_Road_Lining_Yellow_Lines" "")
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- (command "._offset" 0.3 offsetted ofpt "")
- (setq offsetted1 (entlast)
- elist (entget offsetted1)
- )
- (if (assoc 62 elist)
- (setq elist (subst (cons 62 1)(assoc 62 elist) elist ))
- (setq elist (append elist (list '(62 . 1))))
- )
- (entmod elist)
- (command "._pedit" offsetted1 "_W" 1.0 "")
- (setq coords (vl-remove-if (function not)
- (mapcar (function (lambda (x)
- (if (= 10 (car x))(cdr x))))
- elist))
- )
- (setq p2 (car coords)
- midp (mapcar (function (lambda( a b)(/ (+ a b) 2)))
- p1 p2)
- )
- ;(command "_.chprop" offsetted "LA" "CCC_LAYOUT_Proposed_Road_Lining_Yellow_Lines" "")
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- (command "_.mleader")
- (setvar "cmdecho" SUCE)
- (setvar "orthomode" SUOM)
- (setvar "osmode" SUSM)
- (setvar "angbase" SUAB)
- (setvar "angdir" SUAD)
- (setvar "clayer" SUCL)
- (setvar "cecolor" SUCR)
- (princ)
- )
|