我也认为应该可以改,但改了程序就是不能运行 - (defun C:zjpt (/ en pt1 pt2 ptt1 ptt2 ptt3 ptt4 pttt1 pttt2 pttt3 pttt4 I2 Id Id1 Id2 Idd1 Idd2 Idd3 Idd4 ss pd1 k1 k2 k3 k4 ku1 L)
- (setq en (car (entsel "\n选择踏步直线:"))
- pt1 (cdr (assoc 10 (entget en)))
- pt2 (cdr (assoc 11 (entget en)))
- ku1 (angle pt1 pt2)
- Id (mapcar '(lambda (x y) (* (+ x y) 0.5)) pt1 pt2)
- I2 (polar Id (+ ku1 (* pi 0.7)) 620)
- ss (ssget "f" (list Id I2) '((8 . "楼梯" )))
- )
- (if (> (sslength ss) 4)
- (setq k1 (+ ku1 (+ pi (* pi 0.5))))
- (setq k1 (+ ku1 (* pi 0.5)))
- )
- (setq k2 (+ k1 pi))
- (setq k3 (+ k1 (* pi 0.5)))
- (setq k4 (+ k1 (+ pi (* pi 0.5))))
- (setq L (distance pt1 pt2))
- (setq pd1 (polar Id k1 L))
- (setq ptt1 (polar pd1 k3 (+ 70 (* L 0.5)))) ;平台边线点
- (setq pttt1 (polar pd1 k3 (* L 0.5)))
- (setq ptt2 (polar pd1 k4 (+ 70 (* L 0.5)))) ;平台边线点
- (setq pttt2 (polar pd1 k4 (* L 0.5)))
- (setq ptt3 (polar Id k3 (+ 70 (* L 0.5)))) ;平台边线点
- (setq pttt3 (polar Id k3 (* L 0.5)))
- (setq ptt4 (polar Id k4 (+ 70 (* L 0.5)))) ;平台边线点
- (setq pttt4 (polar Id k4 (* L 0.5)))
- (setq
- Id1 (mapcar '(lambda (x y) (* (+ x y) 0.5)) ptt1 ptt3)
- Id2 (mapcar '(lambda (x y) (* (+ x y) 0.5)) ptt2 ptt4)
- Idd1 (polar Id1 k1 50)
- Idd2 (polar Id1 k2 50)
- Idd3 (polar Id2 k1 50)
- Idd4 (polar Id2 k2 50)
- )
- (if (not (tblsearch "layer" "楼梯"))
- (command "-layer" "m" "楼梯" "C" "4" """")
- )
- (setvar "clayer" "楼梯")
- (command "._pline" pttt3 "w" "0" "0" ptt3 ptt1 ptt2 ptt4 pttt4 "")
- (command "._line" pttt3 pttt1 "") ;画栏杆线
- (command "._line" pttt4 pttt2 "") ;画栏杆线
- (if (not (tblobjname "ltype" "DASH"))
- (command "-linetype" "L" "DASH" "acadiso.lin" "")
- )
- (command "-layer" "m" "虚线" "l" "DASH" "虚线" "C" "7" """")
- (setvar "clayer" "虚线")
- (command "._line" Idd1 Idd3 "") ;画梁线
- (command "._line" Idd2 Idd4 "") ;画梁线
- )
就这个小东西 |