Đến nội dung


Hình ảnh

Các cao thủ land desktop giúp em với


  • Please log in to reply
14 replies to this topic

#1 xuantran15

xuantran15

    biết lệnh ddedit

  • Members
  • PipPipPipPip
  • 295 Bài viết
Điểm đánh giá: 112 (tàm tạm)

Đã gửi 30 July 2008 - 10:07 AM

Trong lannd 2004 khi chuyển từ pl sang 3dpl em phải vào terrain/ 3dpl/ create by slope, rồi tạo độ đốc cho đường pl mình chọn, nhung khi gặp đoạn cong ta phải nhập từng đoạn nhỏ rất thủ công và mất thời gian. Các bác có cách gì giải quyết vấn đề trên giúp em với. có thể dùng lisp chẳng hạn(em ko biet về lisp)
Thanks các bác nhiều

  • 0
Hình đã gửi
Thu đi cho lá vàng bay
Lá rơi cho đám cưới về......

#2 xuantran15

xuantran15

    biết lệnh ddedit

  • Members
  • PipPipPipPip
  • 295 Bài viết
Điểm đánh giá: 112 (tàm tạm)

Đã gửi 02 August 2008 - 08:18 AM

Trời!!!!
Sao ko có bác nào giúp em với.
Em dang rất rất cần
  • 0
Hình đã gửi
Thu đi cho lá vàng bay
Lá rơi cho đám cưới về......

#3 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 4105 Bài viết
Điểm đánh giá: 4495 (đỉnh cao)

Đã gửi 02 August 2008 - 08:49 AM

Trời!!!
Vấn đề Khó khăn của bạn là ở khâu nào?

Bạn cần mọi người giúp cái gì?
  • 0

#4 xuantran15

xuantran15

    biết lệnh ddedit

  • Members
  • PipPipPipPip
  • 295 Bài viết
Điểm đánh giá: 112 (tàm tạm)

Đã gửi 03 August 2008 - 07:55 AM

Vấn đề em muốn được các bác chỉ giúp là làm cách nào để tạo nhanh một đường 3dpl từ 1 đường pl mà ko phải nhập khỏng cách từng đoạn nhỏ (Thay vì nhập nhiều lần ta chỉ cần nhập 1 lần là được).

Cách em thường làm là vào terrain/ 3dpl/ create by slope


From point (or Entity): e
Entity (or Points):
Additional curve vertices by [Number/Mid/Distance] <Distance>:

Distance <1.25>: .5

Additional curve vertices by [Number/Mid/Distance] <Distance>:

Distance <0.26>: .5

Additional curve vertices by [Number/Mid/Distance] <Distance>:

Distance <2.06>: .5...............


Starting elevation (or Dtm) <0.00>:500

Slope (or Grade) <-1000.00:1>: -1000

Slope: -1000.00:1, Grade: -0.10


Sau đó ta sẽ có được kết quả là 1 đường 3dpl nhung cách này rất thủ công :s_big: , và nếu gặp 1 dưdờng pl dài và nhiều đoạn cong thì nhập rất lâu và dễ nhầm. Bác nào có cách làm khác hay hơn chỉ giúp em với.
Thanks các bác nhiều.....
  • 0
Hình đã gửi
Thu đi cho lá vàng bay
Lá rơi cho đám cưới về......

#5 cuongtk2

cuongtk2

    biết vẽ ellipse

  • Members
  • PipPip
  • 59 Bài viết
Điểm đánh giá: 20 (tàm tạm)

Đã gửi 03 August 2008 - 11:47 AM

Bạn muốn vẽ lại 1 đường 3DPolyline trên nền 1 đường Pline với thông số như sau:
- Khoảng cách các cung đoạn là : 0.5
- Cao độ bắt đầu là 500.
- Các cung đoạn giảm chiều cao 1000 ( hoặc chiều cao điểm cuối là 1000)
Nếu đúng như vậy thì có thể làm được.
  • 0

#6 xuantran15

xuantran15

    biết lệnh ddedit

  • Members
  • PipPipPipPip
  • 295 Bài viết
Điểm đánh giá: 112 (tàm tạm)

Đã gửi 03 August 2008 - 12:13 PM

thanks cuongtk2 nhieu. nhưng -1000 ở đây là độ dốc i=0.001.
bác làm thế nào chỉ giúp em với.
  • 0
Hình đã gửi
Thu đi cho lá vàng bay
Lá rơi cho đám cưới về......

#7 cuongtk2

cuongtk2

    biết vẽ ellipse

  • Members
  • PipPip
  • 59 Bài viết
Điểm đánh giá: 20 (tàm tạm)

Đã gửi 03 August 2008 - 02:51 PM

Đây là đoạn code viết cho bạn

(defun c:2->3dpl ( / ent chieudai dist dodoc p1 p2 i elev dlist)
(setq ent (car (entsel "\nChon pline:")))
(setq ent (vlax-ename->vla-object ent))
(setq chieudai (vlax-get-property ent 'Length))
(setq dist (getdist "\nKhoang cach can chia<500>:"))
(if (null dist)(setq dist 500))
(setq dodoc (getreal "\nDo doc<0.001>:"))
(if (null dodoc)(setq dodoc 0.001))
(setq elev (getreal "\nCos day<200>:"))
(if (null elev)(setq elev 200))
(setq i 0)
(setq dlist (list))
(while (< (* i dist) chieudai)
(progn
(setq p1 (vlax-curve-getPointAtDist ent (* i dist)))
(setq p1 (list (car p1) (cadr p1) (+ elev (* i dist dodoc))))
(setq dlist (append dlist (list p1))
))
(setq i (1+ i))
)
(setq p2 (vlax-curve-getEndPoint ent))
(setq p2 (list (car p2) (cadr p2) (+ (caddr p1) (* dodoc (distance p1 p2)))))
(setq dlist (append dlist (list p2)))
(command "_3dpoly")
(foreach n dlist (command n)) (command ""))

)

Trong khi dùng bạn nên tắt chế độ bắt điểm vì đoạn code trên mới chỉ viết thử xem có đúng ý của bạn không nên chưa tẩy rửa sạch sẽ.
  • 1

#8 xuantran15

xuantran15

    biết lệnh ddedit

  • Members
  • PipPipPipPip
  • 295 Bài viết
Điểm đánh giá: 112 (tàm tạm)

Đã gửi 04 August 2008 - 12:37 AM

Thank bác nhiều. nhưng quả thực là em ko biết gì về lisp cả. bác có thể tạo thành 1 file *.lsp với đoạn code trên cho em có được ko. hiiiiii thông cảm mới bắt đầu tìm hiểu về lisp mà.
  • 0
Hình đã gửi
Thu đi cho lá vàng bay
Lá rơi cho đám cưới về......

#9 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 4105 Bài viết
Điểm đánh giá: 4495 (đỉnh cao)

Đã gửi 04 August 2008 - 12:46 AM

Thank bác nhiều. nhưng quả thực là em ko biết gì về lisp cả. bác có thể tạo thành 1 file *.lsp với đoạn code trên cho em có được ko. hiiiiii thông cảm mới bắt đầu tìm hiểu về lisp mà.

bạn xem cách tạo ở đây:
http://www.cadviet.c...?showtopic=1787
  • 0

#10 xuantran15

xuantran15

    biết lệnh ddedit

  • Members
  • PipPipPipPip
  • 295 Bài viết
Điểm đánh giá: 112 (tàm tạm)

Đã gửi 04 August 2008 - 01:30 AM

Cảm ơn bác Hoành nhiều, Bài viết thật bổ ích cho những người mới vào nghề như tụi em. Mà hình như đoạn code trên bị lỗi hay sao ấy, em APPLOAD mãi mà không được nó cứ báo lỗi hoài à. Các Bác xem giúp em với nhé.

Command: APPLOAD 3dpl.lsp successfully loaded.
Command: ; error: extra right paren on input
  • 0
Hình đã gửi
Thu đi cho lá vàng bay
Lá rơi cho đám cưới về......

#11 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 4105 Bài viết
Điểm đánh giá: 4495 (đỉnh cao)

Đã gửi 04 August 2008 - 03:07 AM

Cảm ơn bác Hoành nhiều, Bài viết thật bổ ích cho những người mới vào nghề như tụi em. Mà hình như đoạn code trên bị lỗi hay sao ấy, em APPLOAD mãi mà không được nó cứ báo lỗi hoài à. Các Bác xem giúp em với nhé.

Command: APPLOAD 3dpl.lsp successfully loaded.
Command: ; error: extra right paren on input

bạn copy thiếu dấu ngoặc.

Bạn hãy copy lại.
  • 1

#12 xuantran15

xuantran15

    biết lệnh ddedit

  • Members
  • PipPipPipPip
  • 295 Bài viết
Điểm đánh giá: 112 (tàm tạm)

Đã gửi 04 August 2008 - 09:12 AM

Hình như đoạn lisp trên thừa 1 dấu ngoặc thì phải. em bỏ bớt thì dã appload được.

(foreach n dlist (command n)) (command "")

Em đã sử dụng thử thì thấy nó vẫn ko ổn lắm.

Cái em cần là:

Từ 1 đường pl có sẵn, từ đó tìm cách gán cao độ, độ dốc cho pl này (độ dốc có thể là - hpặc +). đường pl này có thể hay gặp trong đường tuyến kênh ấy.

Không hiểu các bác có hiểu ý em không. Nhưng dù sao cũng cám ơn các bác rất rất nhìêu... :s_big:
  • 0
Hình đã gửi
Thu đi cho lá vàng bay
Lá rơi cho đám cưới về......

#13 cuongtk2

cuongtk2

    biết vẽ ellipse

  • Members
  • PipPip
  • 59 Bài viết
Điểm đánh giá: 20 (tàm tạm)

Đã gửi 04 August 2008 - 11:17 AM

đúng là thừa 1 dấu ngoặc thật.
Nếu bạn sử dụng dốc lên thì chọn i>0, dốc xuống thì i<0.
Nếu muốn xoá đường pline cũ đi thì bổ sung đoạn code (entdel ent) vào trước dấu ngoặc đơn sau cùng, vậy là đường 3DPline mới coi như là được update từ đưòng Pline cũ.

Nếu vấn đề như bạn nói thì phải xử lý theo hướng khác.
Phương án 1:
- Select bằng cách Chọn 1 điểm trên Pline.
- Lọc lấy toạ độ tất cả các đỉnh của con Pline cũ ( làm được).
- Xoá con Pline cũ đi ( làm được)
- Nếu điểm chọn gần đầu mút nào sẽ lấy mút đó làm điểm đầu tiên. ( làm được)
- Gán cao độ Z cho điểm đầu tiên.( làm được)
- Gán chênh cao - tức dộ dốc cho các điểm tiếp theo, tuỳ khoảng cách các đỉnh mà sẽ có chênh cao thich hợp.( làm được)
- Vẽ đường 3DPolyline trên các toạ độ cũ với các cung đoạn thẳng ( làm được)

Tuy nhiên nếu đường polyline của bạn có các cung tròn thì kết quả sẽ không đuợc như mong muốn vì lệnh 3dpoly chỉ cho phép vẽ đoạn thẳng, không cho phép vẽ cung tròn. Nếu tuyến kênh của bạn chỉ là một cung tròn thì kết quả càng tai hại. Vì vậy cần bổ sung thêm điểm trên cung tròn để giả lập cung tròn đó, vấn đề là cần bao nhiêu điểm cho 1 cung tròn thì vừa. Câu hỏi này mình không giải quyết được bởi cung lớn thì cần nhiều điểm, cung nhỏ cần ít điểm, mà cung như thế nào để gọi là lớn thì mình không nắm được. Nếu bạn chỉ cần gặp cung tròn là cứ lấy khoảng cách ví dụ 500 đơn vị cho 1 điểm thì khả thi hơn. Tuy nhiên làm được cũng phải có thời gian đầu tư.

Nếu bạn đồng ý mình sẽ giúp bạn phương án 2:
- Bạn đồ lại pline cũ bằng pline chỉ gồm các đoạn thẳng để có thể mô phỏng các cung tròn .
- Bước tiếp theo sử dụng phương án 1 cho con pline mới tạo ra này.
OK?
  • 1

#14 xuantran15

xuantran15

    biết lệnh ddedit

  • Members
  • PipPipPipPip
  • 295 Bài viết
Điểm đánh giá: 112 (tàm tạm)

Đã gửi 04 August 2008 - 06:34 PM

Vấn đề là ở chổ mấy đoạn conng đó cuongqtk2 à, trong mấy cái tuyến kênh thủy điện thì có cái nào thẳng đâu, toàn cung tròn trong không à. buồn thật thế là không giải quyết được vấn đề rồi, đành phải làm theo phương pháp cũ vậy. Thanks bác nhiều. :s_big:
  • 0
Hình đã gửi
Thu đi cho lá vàng bay
Lá rơi cho đám cưới về......

#15 qh2qa06

qh2qa06

    biết vẽ pline

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

Đã gửi 01 October 2014 - 03:33 PM

Các bác cho em hỏi trong Land có thể tính chênh cao giữa 2 surface (bề mặt) không?

Em có một bề mặt là Cao độ tự nhiên (CĐTN), 1 bề mặt là Cao độ thiết kế (CĐTK). Bây giờ em chạy cần xác định Cao độ thiết kế tại một số điểm, Cao độ tự nhiên tại cùng các điểm đó và chênh cao = CĐTK - CĐTN. Có cách nào để Land tự động tính chênh cao không?


  • 0