toggy80 发表于 2022-7-5 16:08:13

自动拾取区域fr

你好
我希望这条线索能对工料测量师有所帮助。
首先,我们通过dwg绘制道路横断面图。总体安排它已经由顾问公司支付。然后,我们的测量师检查建造的路堤层。我们需要在横截面上画出这个高度。并从图纸中提取建造的路堤区域。横截面每隔20m。这意味着那里有很多横截面。
我使用的绘制图层和拾取数量的方法是。
首先,我有一些测量点,包括中心线和两侧偏移。至少3分的调查。
我是多么快速地完成这些步骤。有什么办法吗?

BIGAL 发表于 2022-7-5 16:26:12

 
我有一个lisp称为SRL的曲面rl它需要一个文本被更改为新的水平,只是把一个“x”旁边的点。
 
至于剩下的问题真的不知道。你需要描述更多。
 

;Calculates level of a point in cross or long sections

(setvar "cmdecho" 0)

(princ "\n To run just type SRL")

;;-------------------=={ Parse Numbers }==--------------------;;`
;;                                                            ;;
;;Parses a list of numerical values from a supplied string. ;;
;;------------------------------------------------------------;;
;;Author: Lee Mac, Copyright © 2011 - www.lee-mac.com       ;;
;;------------------------------------------------------------;;
;;Arguments:                                                ;;
;;s - String to process                                     ;;
;;------------------------------------------------------------;;
;;Returns:List of numerical values found in string.       ;;
;;------------------------------------------------------------;;

(defun LM:ParseNumbers ( s )
(
   (lambda ( l )
   (read
       (strcat "("
         (vl-list->string
         (mapcar
             (function
               (lambda ( a b c )
               (if
                   (or
                     (< 47 b 58)
                     (and (= 45 b) (< 47 c 58) (not (< 47 a 58)))
                     (and (= 46 b) (< 47 a 58) (< 47 c 58))
                   )
                   b 32
               )
               )
             )
             (cons nil l) l (append (cdr l) (list nil))
         )
         )
         ")"
       )
   )
   )
   (vl-string->list s)
)
)


(defun c:SRL ()
(setq olddimzin (getvar "dimzin"))
(setvar "dimzin" 0)
(if (= dwgscale nil)
(setq dwgscale (/ 1000.0 (getreal "\n enter vertical scale ")))
)
;(setq datum (getreal "\n Enter datum level "))
(setq datum (car (LM:ParseNumbers (cdr (assoc 1 (entget (car (entsel "\nPick datum text"))))))))



(setq test 1)
(setq pt1 (cadr (getpoint "\npick datum")))
(while (= test 1)

(setq pt2 (cadr (getpoint "\npick point")))

(setq dist (/(abs (- pt1 pt2)) dwgscale))

   (setq en1 (car (entsel "\nSelect text number:" )))
   (if (/= en1 nil)
       (progn
       (setq tent (entget en1))
       (setq a (+ dist datum))
       (setq a (rtos a 2 3))
       (setq el (subst (cons 1 a) (assoc 1 tent) tent))
       (entmod el)
);progn
      (princ "\nplease pick again"); else
    );if
); while t

(setq el nil
en nil
a nil
en1 nil
test nil)

(setvar "cmdecho" 1)
(setvar "dimzin" olddimzin)
(princ)
)        ;ends main defun

BIGAL 发表于 2022-7-5 16:36:57

在垂直和水平方向上做更多的横截面=相同比例使面积计算更容易。我使用绘图1:100 1:100,然后缩放0.1所有横截面,使其真实大小。
 
然后使用bpoly创建一条pline,您可以得到该pline的面积。
 
第三,一种简单的方法来转换现有的,也就是说1:100,1:50的比例为1=1,只需将所有横截面的一块再次插入,并将垂直比例更改为un比例,这样hor和ver现在从内存中为1:1,使x比例为0.1 y 0.05,显然,如果他们的脚比例类似的方法。

toggy80 发表于 2022-7-5 16:45:01

我附上了我们每20米和每周绘制的样品横截面。它花费了太多的时间一个接一个地画。

toggy80 发表于 2022-7-5 16:54:46

我已经调查了建造层的点。我的绘图步骤是
1.cntl+a选择所有横截面图
2.m-move命令拾取中心线顶层并移动到(0,中心线层)
例如01167.424是我附加的样本横截面。
3.pl多段线命令,并从excel偏移和标高复制
4、粘贴到autocad命令行
5、横截面拾取面积
 
这是我一个接一个地绘制横截面的步骤

BIGAL 发表于 2022-7-5 16:59:10

现在可能是时候看看CIV3d或“Civilsite Design”www.civilsurveysolutions了。通用域名格式。au只需按下一个按钮,它就能完整地报告你的道路设计,甚至可以分解成不同体积的路面材料。
 
我很抱歉,但对我来说,花几个小时编写代码是浪费时间,因为自70年代以来,编写代码的能力就已经存在,使用软件包中的其他东西可以很快收回成本支出。

toggy80 发表于 2022-7-5 17:11:36

Civil 3d、Civil site design及其所有相同的软件仅用于设计图纸,并且可以进行数量估算。
但我的帖子是针对不同情况的。已经从设计软件中获得了一些横截面,但我们需要将构造的标高合并到该横截面中,并需要拾取数量
页: [1]
查看完整版本: 自动拾取区域fr