暗夜贵族 发表于 2015-7-16 11:18:37

十字交叉打断,如何取消t型交叉的打断

(defun c:3();交叉打断,缺少三通交叉打断的判断
        (vl-load-com)
        (SETQ SS (SSGET))
        (setq ss_count 0 ss_total (sslength ss))
        (WHILE (< ss_count ss_total )
          (setq e1 (ssname ss ss_count))
          (setq ss_count1 (+ 1 ss_count ))
          (WHILE (< ss_count1 ss_total )
                        (setq e2 (ssname ss ss_count1))
                        (setq brkpt(MK_INTERS e1 e2 0))
                        (ifbrkpt
                                (progn
                          (SETQ brk_e e1 dir1_ang E1_dir1_ang)
                          (setq E1_para (vlax-curve-getParamAtPoint e1 brkpt))
          (setq E1_dir1 (vlax-curve-getFirstDeriv e1 E1_para))
          (setq E1_dir1_ang (angle '(0 0) E1_dir1))
                              (setq E2_para (vlax-curve-getParamAtPoint E2 brkpt))
                (setq E2_dir1 (vlax-curve-getFirstDeriv E2 E2_para))
          (setq E2_dir1_ang (angle '(0 0) E2_dir1))
                                  (if   (OR(= E1_dir1_ang (/ pi 2)) (= E1_dir1_ang (* pi 1.5)) )
                                  (SETQ brk_e e1 dir1_ang E1_dir1_ang)
                                  (SETQ brk_e e2 dir1_ang E2_dir1_ang)
                          )
                      (command "._break" brk_e"_non" (POLARbrkpt(+ PI dir1_ang) 2) "_non" (POLARbrkptdir1_ang 2))
                                  (sSadd(entlast) ss)
                          (setq ss_total (+ 1 ss_total))
                  )
                        )
           (setq ss_count1 (+ 1 ss_count1))
                )
                (setq ss_count (+ 1 ss_count) )
        )
)


页: [1]
查看完整版本: 十字交叉打断,如何取消t型交叉的打断