meflying 发表于 2003-8-5 08:59:00

你想想看,如果是一个封闭的墙,内墙的周长和外墙的周长是不同的,如果你给出一个周长(用鼠标点取也一样),那这个周长是内墙的长还是外墙的长?

lihongyu2467 发表于 2003-8-6 09:17:00

其实测绘中的围墙不是这样复杂,也没有内墙和外墙之分,在成序中只用Pline线画出即可,只是要每隔10m进行等分,可我不会作。

meflying 发表于 2003-8-6 10:07:00

怎么说你才明白?看图,如果给出整个周长为100,就有三种可能

同样给出的周长是100,却有三种可能,你让我画哪个呢?

lihongyu2467 发表于 2003-8-6 12:29:00

不好意思,有些专业上的问题实在是很难沟通。测绘中画围墙时只有前进方向的左侧或右侧之分,我看就是上图中的外墙吧。打扰了这么久,很是不好意思。

meflying 发表于 2003-8-6 14:55:00

看看行不行:
(defun c:Draw2( / pt
                 pt2
              i
              j
              n
              Le        ;剩余长度
              Long        ;每段长度
              Ang        ;每段角度
              Ang_W        ;分割线角度
              pt_W       
              pt_Ws       
              pt_O
              pt_N
              pt_WE
             os
              )
(setvar "cmdecho" 0)
(setq pt (getpoint "\n输入起点:"))
(setq pt_N pt)
(setq pt_O pt)
(setq Le 0)
(command "_.pline" pt_O)
(while (setq pt_N (getpoint pt_N "\n输入下一点:"))
    (command pt_N)
    (setq Long (+ Le (distance pt_N pt_O)))
    (setq Ang (angle pt_O pt_N))
    (setq Ang_W (- Ang (/ pi 2)))
    (setq n (fix (/ Long 10)))
    (setq pt_W (polar pt_O Ang (- 10 Le)))
    (setq pt_WE (polar pt_W Ang_W 0.5))
    (setq pt_Ws (append pt_Ws (list (list pt_W pt_WE))))
    (setq Le (- Long (* n 10)))
    (setq j 1)
    (while (< j n)
      (setq pt_W (polar pt_W Ang 10))
      (setq pt_WE (polar pt_W Ang_W 0.5))
      ;(command "_.pline" pt_W pt_WE "")
      (setq pt_Ws (append pt_Ws (list (list pt_W pt_WE))))
      (setq j (1+ j))
    )
    (setq pt_O pt_N)
)
(command "")
(setq os (getvar "osmode"))
(setvar "osmode" 0)
(setq ent (entlast))
(command "_.offset" 0.5 ent pt_WE "")
(mapcar '(lambda(lst) (command "_.pline" (car lst) (cadr lst) "")) pt_Ws)
(setvar "osmode" os)
(princ)
)
   

lihongyu2467 发表于 2003-8-6 17:44:00

多谢,我回去试试。

lihongyu2467 发表于 2003-8-6 21:41:00

非常好,就是这样。可是目前如果将画出的围墙拟合会产生混乱,是否可以画出的围墙做成一个整体,以便拟合呢?
实在不好意思再打扰你了,如果简单,就解决一下。再次感谢。

gyxzzza 发表于 2003-8-6 22:11:00

你可以用制作线形的办法试试(先制作形,再制作线形),这样就不需要编程了,在实际使用过程中你只需调整线形比例即可

lihongyu2467 发表于 2003-8-7 11:03:00

这种办法我试过,采用制作线形的办法在转点处不好,精度不高。

lihongyu2467 发表于 2003-8-7 11:04:00

这种办法我试过,采用制作线形的办法在转点处不好,精度不高。
页: 1 [2] 3
查看完整版本: [求助]编一个测量中绘制围墙的程序