ぁ远〓望ぉ 发表于 2012-5-7 16:11:31

很急啊,求哪位帮忙修改一下程序好吗!!!

这个程序是在两线之间加个高程点的程序,我用上了捕捉后,老是出现CONSP NIL ,然后参数类型错误,没用捕捉就不会出错,但我必须要用捕捉,请问我该怎么修改啊,(defun c:GCC1()

(setvar "cmdecho" 0)
(setvar "DIMZIN" 4)
(command "layer" "m" "gcd" "c" "1" "gcd" "")
(setvar "clayer" "gcd")
(setq pzgg(getvar "osmode"))


(setq htbl(getvar "userr1"))
(if (= "0" (rtos htbl 2 0))
    (progn
      (initget "200 500 1000 2000 5000 10000 20000 50000 100000")
      (SETQ htbl(atof(getkword "当前比例尺未知,输入比例尺: ")))
      (setvar "userr1" htbl)
      (setq htbl1 htbl)

    (progn
      (setq htbl1 htbl)
      
      )))

   (setq blc(/ htbl 1000))
    (setq blcjl 1.2)
   
(setq line_1 (entsel "/n请选择第一条等高线:"))
(SETQ LINE_TXT(CDR (ASSOC 0(ENTGET(CAR LINE_1)))))
(SETQ ENTPL_1 (CAR LINE_1))

   (SETQ OBJ_pl1(VLAX-ENAME->VLA-OBJECT entpl_1))
(setq H_1(VLA-GET-Elevation OBJ_pl1))



(setq line_2 (entsel "/n请选择相临第2条等高线:"))
(SETQ LINE_TXT2(CDR(ASSOC 0(ENTGET(CAR LINE_2)))))
(SETQ ENTPL_2(CAR LINE_2))

(SETQ OBJ_pl1(VLAX-ENAME->VLA-OBJECT entpl_2))
(setq H_2(VLA-GET-Elevation OBJ_pl1))


(while


(setq YH_mouse T)



(while (and (/= (car (setq YH_mouse (grread YH_mouse 5 0))) 3)(/= (car YH_mouse) 11))

    (SETQ PL2_DD1 (NTH 1 YH_MOUSE))
(setq pt_t(vlax-curve-getclosestpointto entpl_1 pl2_dd1))
(setq pt_last(vlax-curve-getclosestpointto entpl_2 pl2_dd1))

(setq px1(list (nth 0 pt_t) (nth 1 pt_t)))
    (setq px2(list (nth 0 pt_last) (nth 1 pt_last)))
    (setq pt1 (list (nth 0 pl2_dd1)(nth 1 pl2_dd1)))

(setq pt(osnap pt1 "_end")) ;;;;;;;;程序一加上这个就出现CONSP NIL,到底哪错了,
   


   
(SETQ PT_X(NTH 0 PT))
(SETQ PT_Y (NTH 1 PT))

(setq s1 (distance px1 pt))
(setq s2 (distance px2 pt))
(setq s3 (+ s1 s2))



    (if (equal h_1 h_2 0.001)
      (progn
           (setq dgj blc)
      (setq gcz(/ s1 (/ s3 2)))
      (if (> gcz 1)
        (progn
          (setq gcz(/ s2 (/ s3 2)))
          ))
      (setq delh(* dgj gcz))
      (setq h(+ h_1 delh))
        )
      (progn

        (setq h(- h_1 ( * (- h_1 h_2)(/ s1 s3))))
        ))

(SETQ H_D(RTOS H 2 2))
(sETQ H_DD(ATOF H_D))
(SETQ NEW_D(LIST PT_X PT_Y H_DD ))

    (print (strcat "当前高程为:" h_d))

)

(setvar "osmode" 0)


(command "insert" "gc200" (list pt_x pt_y h_dd) blc blc "0")
    (command "text" "st" "xb" "j" "ml"(list (+ pt_x (* 1.2 blc)) pt_y h_dd) (* blc 2) "0" (rtos h_dd 2 2))

(setvar "osmode" pzgg)

)


(setvar "cmdecho" 1)


)
页: [1]
查看完整版本: 很急啊,求哪位帮忙修改一下程序好吗!!!