seven11 发表于 2011-8-31 16:02:38

【求助】帮忙看1下哪里错了!!!

(defun c:ljjx ()
   (setq czlx (ssadd)
         czbz (ssadd)
   )
   (setq jihe (ssget '((-4 . "<or") (8 . "梁虚线") (8 . "梁原位标注") (-4 . "or>"))))
   (setq njihe (sslength jihe))
   (setq aa 0)
   (repeat njihe
      (if
         (and (= (cdr (assoc 8 (entget (ssname jihe aa)))) "梁虚线")
                (= (cdr (assoc 0 (entget (ssname jihe aa)))) "LINE")
         )
         (progn
             (setq pt1 (assoc 10 (entget (ssname jihe aa))))
             (setq pt2 (assoc 11 (entget (ssname jihe aa))))
             (setq pt3 (list (nth 1 pt1) (nth 2 pt1)))
             (setq pt4 (list (nth 1 pt2) (nth 2 pt2)))
             (setq angle1 (angle pt3 pt4))
             (if
               (or (< (abs (- angle1 (/ pi 2))) 0.08)
                   (< (abs (- angle1 (* 3 (/ pi 2)))) 0.08)
               )
               (progn
               (ssadd (ssname jihe aa) czlx)   ;垂直梁线集合
               (setq aa (1+ aa))
               )
               (setq aa (1+ aa))
             )
         )
         )
      (if      
         (and (= (cdr (assoc 8 (entget (ssname jihe aa)))) "梁原位标注")
            (= (cdr (assoc 0 (entget (ssname jihe aa)))) "TEXT")
         )
         (progn
         (setq angle2 (cdr (assoc 50 (entget (ssname jihe aa)))))
         (if
             (or (< (abs (- angle2 (/ pi 2))) 0.08)
               (< (abs (- angle2 (* 3 (/ pi 2)))) 0.08)
             )
             (progn
             (ssadd (ssname jihe aa) czbz)   ;垂直标注集合
             (setq aa (1+ aa))
             )
            (setq aa (1+ aa))
          )
         )
       )
      (setq aa (1+ aa))
   )
)

提示lentityp nil ,哪位知道哪里错了?
初学,水平低,能帮忙精简1下最好,先谢了!!!



duotu007 发表于 2011-8-31 16:20:27

(defun c:ljjx ()
   (setq czlx (ssadd)
         czbz (ssadd)
   )
   (setq jihe (ssget '((-4 . "<or") (8 . "梁虚线") (8 . "梁原位标注") (-4 . "or>"))))
   (if jihe   (progn
   (setq njihe (sslength jihe))
   (setq aa 0)
   (repeat njihe
      (if
         (and (= (cdr (assoc 8 (entget (ssname jihe aa)))) "梁虚线")
                (= (cdr (assoc 0 (entget (ssname jihe aa)))) "LINE")
         )
         (progn
             (setq pt1 (assoc 10 (entget (ssname jihe aa))))
             (setq pt2 (assoc 11 (entget (ssname jihe aa))))
             (setq pt3 (list (nth 1 pt1) (nth 2 pt1)))
             (setq pt4 (list (nth 1 pt2) (nth 2 pt2)))
             (setq angle1 (angle pt3 pt4))
             (if
               (or (< (abs (- angle1 (/ pi 2))) 0.08)
                   (< (abs (- angle1 (* 3 (/ pi 2)))) 0.08)
               )
               (progn
               (ssadd (ssname jihe aa) czlx)   ;垂直梁线集合
               (setq aa (1+ aa))
               )
               (setq aa (1+ aa))
             )
         )
         )
      (if      
         (and (= (cdr (assoc 8 (entget (ssname jihe aa)))) "梁原位标注")
            (= (cdr (assoc 0 (entget (ssname jihe aa)))) "TEXT")
         )
         (progn
         (setq angle2 (cdr (assoc 50 (entget (ssname jihe aa)))))
         (if
             (or (< (abs (- angle2 (/ pi 2))) 0.08)
               (< (abs (- angle2 (* 3 (/ pi 2)))) 0.08)
             )
             (progn
             (ssadd (ssname jihe aa) czbz)   ;垂直标注集合
             (setq aa (1+ aa))
             )
            (setq aa (1+ aa))
          )
         )
       )
      (setq aa (1+ aa))
   )
   )
   (alert "没有满足条件的选择")
   )
)

seven11 发表于 2011-8-31 16:27:55

不行啊,还是有那个错误。。。

ljpnb 发表于 2011-8-31 17:22:56

本帖最后由 ljpnb 于 2011-8-31 17:23 编辑


(defun c:ljjx ()
(setq      czlx (ssadd)
      czbz (ssadd)
)
(setq      ss (ssget '((-4 . "<or")
                  (8 . "梁虚线")
                  (8 . "梁原位标注")
                  (-4 . "or>")
                   )
         )
)
(setq k 0)
(repeat (sslength ss)
    (setq en(ssname ss k)
          ent (entget en)
    )
    (if
      (and (= (cdr (assoc 8 ent)) "梁虚线")
         (= (cdr (assoc 0 ent)) "LINE")
      )
       (progn
         (setq pt1 (cdr (assoc 10 ent)))
         (setq pt2 (cdr (assoc 11 ent)))
         (setq angle1 (angle pt1 pt2))
         (if
         (or (< (abs (- angle1 (/ pi 2))) 0.08)
               (< (abs (- angle1 (* 3 (/ pi 2)))) 0.08)
         )
            (ssadd en czlx)                ;垂直梁线集合
         )
       )
    )
    (if
      (and (= (cdr (assoc 8 ent)) "梁原位标注")
         (= (cdr (assoc 0 ent)) "TEXT")
      )
       (progn
         (setq angle2 (cdr (assoc 50 ent)))
         (if
         (or (< (abs (- angle2 (/ pi 2))) 0.08)
               (< (abs (- angle2 (* 3 (/ pi 2)))) 0.08)
         )
            (ssadd en czbz)      ;垂直标注集合
         )
       )
    )
    (setq k (1+ k))
)
)

海盗曹 发表于 2012-6-2 11:00:33

结构同行前来观光
页: [1]
查看完整版本: 【求助】帮忙看1下哪里错了!!!