Cass生手…… 发表于 2014-6-24 10:50:30

求助……代码

本帖最后由 Cass生手…… 于 2014-6-24 10:54 编辑

(defun c:jjgcd(/ cr)
(setvar "cmdecho" 0)
(setqcr(/ 3.0 (getvar 'DIMSCALE)))
(setq k1 (getint "\n[请输入成图比例尺<1:500(1)/1000(2)/2000(3)<默认1:500>>:") )
(cond ((= k1 1)    (setq blc 1.0 d1 0.5))
      ((= k1 2)    (setq blc 2.0 d1 1))
      ((= k1 3)    (setq blc 4.0 d1 2))
      (t    (setq blc 1.0 d1 0.5))
)
(setq k1 (getint "\n[请输入高程点小数位]<3>"))
(cond ((= k1 1) (setq gcws 1))
      ((= k1 2) (setq gcws 2))
      ((= k1 3) (setq gcws 3))
      (t (setq gcws 3))
)
(setvar "osmode" 4);捕捉圆心
(setq p1 (getpoint "\n请选择第一个高程点:"))

   (setq ptl '())
   (setq cd 0.000)
   (setq cdl '())
   (setq a3 0.000)   (setq i 0)
   (setvar "osmode" 1);捕捉端点节点交点最近点
   (setq pt2 p1)
   (while (setq pt (getpoint "\n请按顺序输入内插高程点位置:"))
   (setq ptl (cons pt ptl))
   (setq cd (+ cd (disuser1 pt pt2)))
   (setq pt2 pt)
   (setq cdl (cons cd cdl))
   )
(setq cdl (reverse cdl))
(setq ptl (reverse ptl))
(setvar "osmode" 4);捕捉圆心
(setq p2 (getpoint "\n请选择第二个高程点:"))
(setq cd (+ cd (disuser1 pt2 p2)))
(setq a1 (caddr p1))
(setq a2 (caddr p2))
(command "layer" "s" "gcd" "" "")
(while (nth i ptl)
      (setq a3 (+ a1 (* (- a2 a1) (/ (nth i cdl) cd))))
      (command "_insert" "gc200" (list (car (nth i ptl)) (cadr (nth i ptl)) a3) d1 d1 0 );调用块gc200高程点
      (command "text""s" "hz" "j" "ml" (list (+ (car (nth i ptl)) cr) (cadr (nth i ptl))) blc 0 (rtos a3 2 gcws) );注记高程点
      (setq i (+ i 1))
   )
(command "layer" "s" "0" "" "")
(setvar "cmdecho" 1)
   (princ)
)

这个代码谁能修改一下:

一、能不能选取在选取的两个高程点之间插随机数值的高程,而不是单一的高程。
二、能不能注记成高程点,而不是打散的点和数字。
谢谢大家了,这个代码也是在网上找的。自己对这个方面也不会,所以向大家求助

页: [1]
查看完整版本: 求助……代码