Đến nội dung


Hình ảnh
- - - - -

Vẽ cao độ địa hình từ bản đồ lên mặt cắt


  • Please log in to reply
4 replies to this topic

#1 dangneo

dangneo

    biết vẽ line

  • Members
  • PipPip
  • 28 Bài viết
Điểm đánh giá: -1 (bình thường)

Đã gửi 10 July 2013 - 11:51 AM

http://www.cadviet.c...120138_hi_2.dwg


  • 0

#2 dangneo

dangneo

    biết vẽ line

  • Members
  • PipPip
  • 28 Bài viết
Điểm đánh giá: -1 (bình thường)

Đã gửi 10 July 2013 - 11:54 AM

Nhờ các bạn tìm hộ mình cái lisp vẽ địa hình mặt cắt từ bản đồ địa hình nhé.

Ở đây mình lập 1 tuyến chạy của mặt cắt

Từ các toạ độ trên bản đồ địa hình chạy được ra địa hình của mặt cắt

Chú ý: Có các thông số cần được biểu diễn như Cột điện, mốc toạ độ, cây... Nhờ các bạn đưa lên bản đồ kèm theo cao độ biểu diễn bên phải của Thông số cột điện, mốc như trên bản vẽ mình đưa lên nhé.

Tks các bạn.


  • 0

#3 dangneo

dangneo

    biết vẽ line

  • Members
  • PipPip
  • 28 Bài viết
Điểm đánh giá: -1 (bình thường)

Đã gửi 10 July 2013 - 12:01 PM

nhân tiện ở đây mình cũng nhờ các bạn sửa hộ S2p.slp đã có sẵn

 

http://www.cadviet.c.../120138_s2p.lsp

 

- Yêu cầu: thao tác nhập số điểm chuyển từ Spl sang Pl chuyển thành khoảng cách của mỗi nút pl sau khi chuyển. ví dụ sau khi chuyển sang pl mỗi nút sẽ cách nhau 0.5m...

;; free lisp from cadviet.com
;;; this lisp was downloaded from http://www.cadviet.c...ne-thanh-pline/
 
 
;; Spline2Pline.lsp © 2005 Lloyd Beachy
 
;; Routine to convert splines to plines
 
 
 
(Defun C:S2P (/ ss pt# cmdecho osmode clayer count ent lay lng pt-list
 
 cnt)
 
  (vl-load-com)
 
  (setq ss (ssget '((0 . "spline")))
 
pt# (getint "Enter number of segments <100>:")
 
cmdecho (getvar "cmdecho")
 
osmode (getvar "osmode")
 
clayer (getvar "clayer")
 
count 0 ;spline counter
 
  ) ;end setq
 
  (if (null pt#)
 
(setq pt# 100)
 
  )
 
  (setvar "cmdecho" 0)
 
  (command ".undo" "begin") ;begin undo group
 
  (setvar "osmode" 0)
 
  (repeat (sslength ss) ;repeat for each spline
 
(setq ent  (vlax-ename->vla-object (ssname ss count))
 
;change spline to vla-object
 
 lay  (vlax-get-property ent "layer");spline's layer
 
 lng  (vlax-curve-getDistAtPoint ent (vlax-curve-getEndPoint ent))
 
;length of spline
 
 pt-list (list (vlax-curve-getStartPoint ent))
 
;coords for start of spline
 
 cnt  1.0 ;segment counter
 
) ;end setq
 
(repeat pt# ;repeat for each segment
 
 (setq pt-list
 
(cons (vlax-curve-getPointAtDist ent (* lng (/ cnt pt#)))
 
  pt-list
 
)
 
 ) ;add segment's point to pt-list
 
 (setq cnt (1+ cnt)) ;counter to next segment
 
) ;end segment repeat
 
(setq cnt 0) ;pline counter
 
(setvar "clayer" lay) ;match spline's layer
 
(command ".pline" ;start "pline" command
 
(repeat (length pt-list);repeat for each point
 
  (command (nth cnt pt-list));enter current point
 
  (setq cnt (1+ cnt));counter to next point
 
  "" ;return value to close "pline" command
 
) ;end point repeat
 
) ;end command
 
(setq count (1+ count)) ;counter to next spline
 
  ) ;end spline repeat
 
  (command ".erase" ss "")
 
  (setvar "osmode" osmode)
 
  (setvar "clayer" clayer)
 
  (command ".undo" "end") ;end of undo group
 
  (setvar "cmdecho" cmdecho)
 
  (princ) ;exit quietly
 
) ;end C:S2P
 
;; free lisp from cadviet.com
;;; this lisp was downloaded from http://www.cadviet.c...ne-thanh-pline/
 
 
;; Spline2Pline.lsp © 2005 Lloyd Beachy
 
;; Routine to convert splines to plines
 
 
 
(Defun C:S2P (/ ss pt# cmdecho osmode clayer count ent lay lng pt-list
 
 cnt)
 
  (vl-load-com)
 
  (setq ss (ssget '((0 . "spline")))
 
pt# (getint "Enter number of segments <100>:")
 
cmdecho (getvar "cmdecho")
 
osmode (getvar "osmode")
 
clayer (getvar "clayer")
 
count 0 ;spline counter
 
  ) ;end setq
 
  (if (null pt#)
 
(setq pt# 100)
 
  )
 
  (setvar "cmdecho" 0)
 
  (command ".undo" "begin") ;begin undo group
 
  (setvar "osmode" 0)
 
  (repeat (sslength ss) ;repeat for each spline
 
(setq ent  (vlax-ename->vla-object (ssname ss count))
 
;change spline to vla-object
 
 lay  (vlax-get-property ent "layer");spline's layer
 
 lng  (vlax-curve-getDistAtPoint ent (vlax-curve-getEndPoint ent))
 
;length of spline
 
 pt-list (list (vlax-curve-getStartPoint ent))
 
;coords for start of spline
 
 cnt  1.0 ;segment counter
 
) ;end setq
 
(repeat pt# ;repeat for each segment
 
 (setq pt-list
 
(cons (vlax-curve-getPointAtDist ent (* lng (/ cnt pt#)))
 
  pt-list
 
)
 
 ) ;add segment's point to pt-list
 
 (setq cnt (1+ cnt)) ;counter to next segment
 
) ;end segment repeat
 
(setq cnt 0) ;pline counter
 
(setvar "clayer" lay) ;match spline's layer
 
(command ".pline" ;start "pline" command
 
(repeat (length pt-list);repeat for each point
 
  (command (nth cnt pt-list));enter current point
 
  (setq cnt (1+ cnt));counter to next point
 
  "" ;return value to close "pline" command
 
) ;end point repeat
 
) ;end command
 
(setq count (1+ count)) ;counter to next spline
 
  ) ;end spline repeat
 
  (command ".erase" ss "")
 
  (setvar "osmode" osmode)
 
  (setvar "clayer" clayer)
 
  (command ".undo" "end") ;end of undo group
 
  (setvar "cmdecho" cmdecho)
 
  (princ) ;exit quietly
 
) ;end C:S2P
 
;; free lisp from cadviet.com
;;; this lisp was downloaded from http://www.cadviet.c...ne-thanh-pline/
 
 
;; Spline2Pline.lsp © 2005 Lloyd Beachy
 
;; Routine to convert splines to plines
 
 
 
(Defun C:S2P (/ ss pt# cmdecho osmode clayer count ent lay lng pt-list
 
 cnt)
 
  (vl-load-com)
 
  (setq ss (ssget '((0 . "spline")))
 
pt# (getint "Enter number of segments <100>:")
 
cmdecho (getvar "cmdecho")
 
osmode (getvar "osmode")
 
clayer (getvar "clayer")
 
count 0 ;spline counter
 
  ) ;end setq
 
  (if (null pt#)
 
(setq pt# 100)
 
  )
 
  (setvar "cmdecho" 0)
 
  (command ".undo" "begin") ;begin undo group
 
  (setvar "osmode" 0)
 
  (repeat (sslength ss) ;repeat for each spline
 
(setq ent  (vlax-ename->vla-object (ssname ss count))
 
;change spline to vla-object
 
 lay  (vlax-get-property ent "layer");spline's layer
 
 lng  (vlax-curve-getDistAtPoint ent (vlax-curve-getEndPoint ent))
 
;length of spline
 
 pt-list (list (vlax-curve-getStartPoint ent))
 
;coords for start of spline
 
 cnt  1.0 ;segment counter
 
) ;end setq
 
(repeat pt# ;repeat for each segment
 
 (setq pt-list
 
(cons (vlax-curve-getPointAtDist ent (* lng (/ cnt pt#)))
 
  pt-list
 
)
 
 ) ;add segment's point to pt-list
 
 (setq cnt (1+ cnt)) ;counter to next segment
 
) ;end segment repeat
 
(setq cnt 0) ;pline counter
 
(setvar "clayer" lay) ;match spline's layer
 
(command ".pline" ;start "pline" command
 
(repeat (length pt-list);repeat for each point
 
  (command (nth cnt pt-list));enter current point
 
  (setq cnt (1+ cnt));counter to next point
 
  "" ;return value to close "pline" command
 
) ;end point repeat
 
) ;end command
 
(setq count (1+ count)) ;counter to next spline
 
  ) ;end spline repeat
 
  (command ".erase" ss "")
 
  (setvar "osmode" osmode)
 
  (setvar "clayer" clayer)
 
  (command ".undo" "end") ;end of undo group
 
  (setvar "cmdecho" cmdecho)
 
  (princ) ;exit quietly
 
) ;end C:S2P

  • 0

#4 dangneo

dangneo

    biết vẽ line

  • Members
  • PipPip
  • 28 Bài viết
Điểm đánh giá: -1 (bình thường)

Đã gửi 11 July 2013 - 02:56 PM

Nhờ các bạn một chút nào...


  • 0

#5 dangneo

dangneo

    biết vẽ line

  • Members
  • PipPip
  • 28 Bài viết
Điểm đánh giá: -1 (bình thường)

Đã gửi 19 July 2013 - 01:52 PM

Có ai giúp mình không nhỉ...


  • 0