 - (defun zbzh (ppt_x ppt_y)
- (setq d_x -15.0
- d_y -3.0
- k_k 1.0056046755
- a_angle 0.0005081
- )
- (setq dd_x (+ d_x (* k_k (- (* (cos a_angle) ppt_x) (* (sin a_angle) ppt_y)))))
- (setq dd_y (+ d_y (* k_k (+ (* (cos a_angle) ppt_y) (* (sin a_angle) ppt_x)))))
- (setq ppt (list dd_x dd_y))
- )
- (defun c:zh (/ ss l_length data new_list
- last_list m_list en en_data b_list
- pt pt_x pt_y pt_h new_pt_x
- new_pt_y new_pt pt_data data f_list
- new_en_data
- )
- (setvar "nomutt" 1)
- (setq ss (ssget '((0 . "LWPOLYLINE")))) ;选择多个对象
- (setvar "nomutt" 0)
- (setq l_length 0)
- (repeat (sslength ss)
- (setq i 0
- j 0
- n 0
- z 0
- m 0
- mm 0
- data (list '(0 0))
- new_list (list '(0 0))
- last_list (list '(0 0))
- m_list (list '(0 0))
- )
- (setq en (ssname ss l_length)) ;获取第“l_length”个对象的对象名
- (setq en_data (entget en)) ;获取对象列表
- (setq b_list (list (car (reverse en_data))))
- (while (/= (nth j en_data) nil)
- (if (= (car (nth j en_data)) 10)
- (progn
- (setq pt (cdr (nth j en_data)))
- (setq pt_x (car pt))
- (setq pt_xx (distof (rtos pt_x 2 10)))
- (setq pt_y (cadr pt))
- (setq pt_yy (atof (rtos pt_y 2 10)))
- (setq pt_h (caddr pt))
- (if (= pt_h nil)
- (setq pt_h 0)
- )
- (setq new_pt_x (car(zbzh pt_x pt_y)))
- (setq new_pt_x (atof (rtos new_pt_x 2 12)))
- (setq new_pt_y (cadr (zbzh pt_x pt_y)))
- (setq new_pt_y (atof (rtos new_pt_y 2 12)))
- (setq new_pt (list new_pt_x new_pt_y pt_h))
- (setq pt_data (cons 10 new_pt))
- (setq data (append (list (list pt_data
- (nth (+ j 1) en_data)
- (nth (+ j 2) en_data)
- (nth (+ j 3) en_data)
- )
- )
- data
- )
- )
- (setq z (+ z 1))
- (if (= z 1)
- (setq f_list (carnth j en_data))
- ;获取对象数据中第一个节点坐标前的列表数据
- ) ;end if
- ) ;end progn
- ) ;end if
- (setq j (+ j 1))
- )
- (setq data (cdr (reverse data)))
- (while (/= (nth mm data) nil)
- (setq nn 0)
- (while (/= (nth nn (nth mm data)) nil)
- (setq m_list
- (append (list (nth nn (nth mm data))) m_list)
- )
- (setq nn (+ nn 1))
- ) ;end while
- (setq mm (+ mm 1))
- )
- (setq m_list (cdr (reverse m_list)))
- ;;;对象更新
- (setq new_en_data (append f_list m_list b_list))
- (entmod new_en_data)
- (setq l_length (+ l_length 1))
- )
- )
这是1中所用的命令 |