Chuyển đến nội dung
Diễn đàn CADViet
  • Thông báo

    • Nguyen Hoanh

      CADViet đã hoàn tất nâng cấp   14/09/2017

      Chào các bạn, CADViet đã hoàn tất việc nâng cấp lên phiên bản mới. Tất cả các chức năng đã hoạt động theo kỳ vọng của ban quản trị. Nếu có vấn đề gì cần phản hồi, các bản post ở đây nhé: Trân trọng, Nguyễn Hoành.
Đăng nhập để thực hiện theo  
lenhatanh

[Xin giúp chỉnh sửa]Vẽ cột so sánh cho MCN địa hình

Các bài được khuyến nghị

Em nhờ các Bác chỉnh sửa giúp Lisp vẽ cột so sánh cho các mặt cắt ngang địa hình...

link đến file CAD cho dễ hiểu: http://www.cadviet.com/upfiles/3/drawing4.dwg

(defun C:Do-Cososa()
; (/ solan sl step cdo che caotext daitext mss tiled Nhim
;                      di1 di2 di3 di4 di5 di6 di7 di8 di9 p1 p2 p3 pp)
 (command "undo" "be")

 (if (not tiled) (setq tiled 100.0))
 (setq tiledo (getreal (strcat "\n TiLe Dung Ve Mat Cat <" (rtos tiled 2 0) ">...: ")))
 (if tiledo (setq tiled tiledo))

 (if (not mss) (setq mss 0.0))
 (setq msso (getreal (strcat "\n Muc So Sanh Cua M.Cat <" (rtos mss 2 2) ">...: ")))
 (if msso (setq mss msso))

;  (setq tiled (getreal "\n TiLe Dung Ve Mat Cat...: "))
;  (setq mss (getreal "\n Muc So Sanh Cua M.Cat...: "))

 (setq cdo (getreal "\n Cao Do Max Cua Duong D.Hinh...: "))
 (setq di1 (getpoint "\n Diem Dat Thuoc...: "))
 (setq caotext (getvar "Textsize") daitext (* 20 caotext))
 (setq step (/ tiled 100)
       che (- cdo mss)
       solan (+ (fix (/ (* che 100) tiled)) 1) sl nil) 
 (setq di2 (polar di1 (-(/ pi 2)) (* caotext 6))
       di3 (polar di2 (-(/ pi 2)) (* caotext 3))
       di4 (polar di1 (- pi) daitext)
       di5 (polar di2 (- pi) daitext)
       di6 (polar di3 (- pi) daitext)
       di7 (polar di1 (/ pi 2) solan)
       di8 (polar di7 (- pi) 0.2)
       di9 (polar di1 (- pi) 0.2)   
 )
 (command "Osmode" 0)
 (command "color" 7 "PLine" di6 di4 di1 di7 di8 di9 "")
 (command "_text" "J" "MC" (list (+ (car di5) (* 10 caotext)) (+ (cadr di5) (* 3 caotext))) "0" "Cao ®é (m)")
 (command "_text" "J" "MC" (list (+ (car di6) (* 10 caotext)) (+ (cadr di6) (* 1.5 caotext))) "0" "Kho¶ng c¸ch (m)")
 (command "_text" "J" "C" (list (+ (car di4) (* 10 caotext)) (+ (cadr di1) (* 0.75 caotext))) "0" (strcat "mss: " (rtos mss 2 2)))
 (command "color" 8 "Line" di2 di5 "" "Line" di3 di6 "")
;;---------------------- Ve Truc --------------------------
 (setq p1 (polar di1 (/ pi 2) 1) p2 (polar di1 (- pi) 0.1)
       p3 (polar p1 (- pi) 0.1))
 (command "color" 8 "solid" di1 p1 p2 p3 "")
 (cond
;;;;;;;;;;; Solan la chan -------------------  
   ((= (/ solan 2) (fix (/ solan 2)))
     (setq sl (- (fix (/ solan 2)) 1))
   )
;;;;;;;;;;; Solan la le---------------------    
   (T      
     (setq sl (+ (fix (/ solan 2)) 1))
   )
 )
 (repeat sl
   (setq pp (polar di1 (/ pi 2) 2))
   (command "copy" "L" "" di1 pp "")
   (setq di1 pp)
 )
 (command "copy" "L" "" di1 p3 "")
 (repeat sl
   (setq pp (polar p3 (/ pi 2) 2))
   (command "copy" "L" "" p3 pp "")
   (setq p3 pp)
 )  
;;------------------------------ Ghi Text Truc ----------------------------  
 (repeat solan
   (setq pp (polar p1 (- pi) 0.4) mss (+ mss step))
   (command "color" 7 ".TEXT" "MR" pp "0" (rtos mss 2 2))
   (setq p1 (polar p1 (/ pi 2) 1))
 )
;;-------------------------------------------------------------------------
 (setq mss nil)
 (command "Osmode" 33 "color" "Bylayer" "ortho" "on" "redraw")
 (command "undo" "e")
 (princ)
)

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Không phải chuyên ngành nên đọc lồi mắt ra mình vẫn chưa hiểu cái lisp nó làm cái gì ^^ Chạy thôi ^^

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Để em diễn giải lại cho dễ hiểu:

- Các mặt cắt ngang Địa Hình ban đầu chưa có cột so sánh ở đầu mặt cắt... (Hình 1)

- Sử dụng lisp để thêm cột so sánh ở đầu cho các MCN địa hình đó (H2- H3).

- Hiện lisp thể hiện việc thêm cột so sánh chưa hoàn thiện: các hình Solid thể hiện

trắng đen của cột chưa đúng khi thay đổi Mức so sánh, thay đổi tỉ lệ đứng... của mặt cắt (H3).

- Yêu cầu chỉnh sửa Lisp sao cho các hình Solid đúng khi thay đổi MSS hay TILE của MCN.

- Link đến bản vẽ CAD minh hoạ: http://www.cadviet.c.../3/drawing4.dwg

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Như thế nào gọi là đúng bạn ơi ^^

- Hiện lisp thể hiện việc vẽ các Solid thể hiện trắng đen của cột chưa đúng khi thay đổi Mức so sánh, thay đổi tỉ lệ đứng... của mặt cắt (H3).

- Yêu cầu chỉnh sửa Lisp sao cho các hình Solid rải đều trên cột so sánh khi thay đổi MSS hay TILE của MCN.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay

Đăng nhập để thực hiện theo  

×