123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166 |
- ;;连接2条3dpolyline;;coord为LJ的子程序
- (defun coord(en / ed)
- (setq ee (entsel "\n请选择要连接的线:"))
- (setq en (car ee))
- (setq ed (enTGET en))
- (print ed)
- (setq la (cdr (assoc 8 ed)))
- (setq pp (cdr (assoc 0 ed)))
- (if (/= pp "LINE")
- (progn
- (setq la (cdr (assoc 8 ed)))
- (setq c38 (assoc 38 ed))
- (if (eq c38 nil)
- (progn
- (setq en1 (entnext en))
- (setq ed1 (entget en1))
- (setq pp (cdr (assoc 0 ed1)))
-
- (setq pt1 (assoc 10 ed1))
- (if (/= pt1 nil)
- (progn
- (setq pt (cdr pt1))
- ))
- (setq lt (list pt))
- (while (/= pp "SEQEND")
- (progn
- (setq en1 (entnext en1))
- (setq ed1 (entget en1))
- (setq pp (cdr (assoc 0 ed1)))
- (setq pt1 (assoc 10 ed1))
- (if (/= pt1 nil)
- (progn
- (setq pt (cdr pt1))
- ))
- (setq lt (cons pt lt))
- )
- )
- (setq lt (cdr lt))
- ); not lwpolyline
- (progn
- (print "aaa")
- (setq ev38 (cdr c38))
- (setq len (length ed))
- (setq len (- len 3))
- (setq j 0)
- (setq c10 (car (nth j ed)))
- (while (/= c10 10)
- (progn
- (setq j (+ 1 j))
- (setq c10 (car (nth j ed)))
- ))
- (setq lt (list (list 0 0 0)))
- (while (< j len)
- (progn
- (setq lpt1 (cdr (nth j ed)))
- (setq lptx (nth 0 lpt1))
- (setq lpty (nth 1 lpt1))
- (setq lpt (list lptx lpty ev38))
- (setq lt (cons lpt lt))
- (setq j (+ j 4))
- ))
- (setq lt (reverse lt))
- (setq lt (cdr lt))
- )); is lwpolyline
-
- ) ; not line
- (progn
-
- (setq lip1 (cdr (assoc 10 ed)))
- (setq lt (list lip1))
- (setq lip2 (cdr (assoc 11 ed)))
- (setq lt (cons lip2 lt))
- )) ; line
-
- (setq pot (cadr ee))
- (setq edd ed)
- (setq lla la)
- (setq e en)
- (setq lt lt)
-
- ;(entdel en)
- )
- 连接2条3dpolyline,LJ为主程序;;coord为LJ的子程序
- (defun c:y()
- (setq lt1 (coord en))
- (setq e1 e)
- (setq la1 lla)
- (setq et1 edd)
- (setq pot1 pot)
- (setq lt1 (reverse lt1))
- (setq color1 (cdr c66))
- ;(setq c62 (assoc 62 ed))
- ;(setq cc62 (cons 62 3))
- ;(setq color1 (cdr c62))
- ;(setq ed (subst cc62 c62 ed))
- ;(entmod ed)
- (command "change" e1 "" "P" "c" "3" "")
- ;_______________
- (setq pss1 (car lt1))
- (setq ps1 (list (nth 0 pss1) (nth 1 pss1)))
- (setq pee1 (last lt1))
- (setq pe1 (list (nth 0 pee1) (nth 1 pee1)))
- (setq pot1 (list (nth 0 pot1) (nth 1 pot1)))
- (setq ds1 (distance ps1 pot1))
- (setq de1 (distance pe1 pot1))
- (if (> ds1 de1)
- (progn
- (setq lt1 lt1)
- )
- (progn
- (setq lt1 (reverse lt1))
- ))
- ;________________
- (setq lt2 (coord en))
- (setq e2 e)
- (setq la2 lla)
- (setq et2 edd)
- (setq pot2 pot)
- (setq lt2 (reverse lt2))
- (command "change" e2 "" "p" "c" 3 "")
- ;_________________
- (setq pss2 (car lt2))
- (setq ps2 (list (nth 0 pss2) (nth 1 pss2)))
- (setq pee2 (last lt2))
- (setq pe2 (list (nth 0 pee2) (nth 1 pee2)))
- (setq pot2 (list (nth 0 pot2) (nth 1 pot2)))
- (setq ds2 (distance ps2 pot2))
- (setq de2 (distance pe2 pot2))
- (if (< ds2 de2)
- (progn
- (setq lt2 lt2)
- )
- (progn
- (setq lt2 (reverse lt2))
- ))
- ;_________________
- (if (= la1 la2)
- (progn
- (setq lt (append lt1 lt2))
- (setvar "clayer" la1)
- (setq i 0)
- (setq len (length lt))
- (if (NOT (EQ e1 e2))
- (progn
- (command "3dpoly")
- (while (< i len)
- (progn
- (setq pt (nth i lt))
- (command pt)
- (setq i (+ 1 i))
- ))
- (command "")
- (entdel e1)
- (entdel e2)
- )
- (progn
- (prompt "\nSORRY! 你选择了同一条线!!!!")
- (print)
- ))
- )
- (progn
- (prompt "\nSORRY! 你选择的不是同一层的线!!!!")
- (PRINT)
- ))
- ;(command "change" "l" "" "p" "c" color1 "")
- )
|