WEB开发网
开发学院图形图像AutoCAD 基于组件的三维CAD系统开发的关键技术研究 阅读

基于组件的三维CAD系统开发的关键技术研究

 2007-12-24 09:56:09 来源:WEB开发网   
核心提示: 2 .2 地形切剖面水电工程设计中经常遇到在地形图上切剖面的问题,借助Visual Lisp可以实现快速切剖面,基于组件的三维CAD系统开发的关键技术研究(3),(1) 初始地形图处理把带z坐标的地形平面图进行变换,变换后z坐标值成为层名,为加快切剖面运行速度,把“LWPOLY

2 .2 地形切剖面

水电工程设计中经常遇到在地形图上切剖面的问题,借助Visual Lisp可以实现快速切剖面。

(1)    初始地形图处理

把带z坐标的地形平面图进行变换,变换后z坐标值成为层名,为加快切剖面运行速度,把“LWPOLYLINE”和”SPLINE”均转化为”LINE“线,程序如下

(defun c:pltol()
;LWPOLYLINE转化为LINE
 (setq n 0)
(setq e (ssget"X" (list (cons 0 "LWPOLYLINE"))))
 (setq sh (sslength e))
 (if e
  (while (< n sh)
   (setq e1 (ssname e n))
   (command "pedit" e1 "d" "")
   (setq x (entget e1))
   (setq ngc (atof (setq la (fld 8 x))))
   (command "explode" e1)
   (setq n (+ n 1))
) ) )
(defun fld (num lst)
   (cdr (assoc num lst))
  )
(defun c:spltol ()
;SPLINE转化为LINE
 (setq n 0)
 (setq e (ssget "X" (list (cons 0 "SPLINE"))))
 (setq sh (sslength e))
 (if e
  (while (< n sh)
   (setq x (entget (setq e1 (ssname e n))))
   (setq nla (itoa (fix (caddr (fld 10 x)))))
   (if (= (fld 0 x) "SPLINE")
    (progn
     (command "layer" "n" nla "c"
"6" nla "s" nla "")
     (command"line")
     (setq  nm  (length x)
       dzs (fld 73 x)   dzs1 (fld 74 x))
     (while (> nm 5)
      (if  (= (car (nth nm x)) 10)
       (progn
        (setq b1 (nth nm x))
       (setq x1 (cadr b1))
       (setq y1 (caddr b1))
       (setq z1 (cadddr b1))
       (setq glb (list x1 y1))
       (command glb)
      ) )
      (setq nm (- nm 1))
    )))
   (command "")
   (setq n (+ n 1))
)))

上一页  1 2 3 4 5 6 7  下一页

Tags:基于 组件 三维

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接