Chuyển đến nội dung
Diễn đàn CADViet

hongquan88

Thành viên
  • Số lượng nội dung

    10
  • Đã tham gia

  • Lần ghé thăm cuối

Bài đăng được đăng bởi hongquan88


  1.  

    Hề hề hề,

    Mình không phải dân chuyên ngành của bạn. Sau khi đọc yêu cầu của bạn và xem bản vẽ bạn gửi, minh viết cái lisp sau giúp bạn có thể ghi được cao độ của các đường đồng mức dựa vào cách làm như sau:

    1/- Mở bản vẽ zoom gần tới một vị trí point chuẩn có ghi sẵn cao độ của điểm đó. Tỷ dụ bạn chọn điểm có cao độ là 392

    2/- Vẽ một lwpolyline sao cho nó cắt mỗi đường đồng mức chỉ tại một điểm theo một chiều.gọi là đường dẫn

    3/- load lisp

    4/- Gõ lệnh cddm và làm theo các yêu cầu của lisp;

      Khi líp yêu cầu chọn đường dẫn thì chọn polyline vừa vẽ

      Khi lisp yêu cầu nhập cao độ bắt đầu thì nhập giá trị chẵn bước của đường đồng mức gần với điểm đã ghi cao độ trước (trong trường hợp cụ thể bản vẽ của bạn gửi thì nhập 380 tường ứng với cao độ điểm là 392)

     Khi líp yêu cầu nhập độ chênh cao giữa các đường đồng mức thì tùy theo chiều vẽ polyline mà nhấp giá trị dương hay âm của độ chênh cao này (trong trường hợp bản vẽ bạn gửi thì giá trị này là + hoặc - 20.

    Sau đó nhấn enter và chờ líp hoàn thành công việc của nó.

    5/- Check lại xem lisp ghi đúng chưa, nếu thấy chưa đúng thì undo để xóa toàn bộ những gì líp đã làm, không ảnh hưởng tới bản vẽ của bạn.

     

    Lưu ý rằng trong bản vẽ bạn gửi, các đường đồng mức nằm trên nhiều layẻ khác nhau mà mình chỉ mới phát hiện được có 3 layẻ là 1,2 và 5. Khi thấy lisp bỏ sót các đường đồng mức chưa được ghi cao độ thì có thể là do đường đồng mức đó nắm khác layẻ với các layẻ kể trên và bạn phải bổ sung layẻ này vào trong bộ chọn đối tượng của lisp.

    Hy vọng bạn có thể dùng được lisp này để thuận lợi cho công việc của bạn. Nếu quá trình dùng có vấn đề gì chưa rõ cứ post lên mình sẽ tìm hiểu và giải thích.

    Chúc bạn vui

     

     

    </p>
    <p> </p>
    <div>(defun c:gcddm ( / pl plst ssdml cdmax chcd i els ssp cdt )</div>
    <div>(vl-load-com)</div>
    <div>(setq oldos (getvar "osmode"))</div>
    <div>(setvar "osmode" 0)</div>
    <div>(command "undo" "be")</div>
    <div>(setq pl (car (entsel "\n Chon duong dan"))</div>
    <div>          plst (acet-geom-vertex-list pl ) )</div>
    <div> </div>
    <div>(setq ssdml (acet-ss-to-list (ssget "f" plst (list (cons 0 "lwpolyline") (cons 62 30) (cons 8 "1,2,5")))))</div>
    <div> </div>
    <div>(setq cdmax (getreal "\n Nhap cao do bat dau: ")</div>
    <div>          chcd (getreal "\n Nhap do chenh cao giua cac duong dong muc: ")</div>
    <div>          i 0 )</div>
    <div> (foreach dm ssdml</div>
    <div>         (setq els (entget dm)</div>
    <div>                  cdt  (+ cdmax (* i chcd))</div>
    <div>                  els (subst (cons 38 cdt ) (assoc 38 els) els)</div>
    <div>                  els (subst (cons 62 2) (assoc 62 els) els) )</div>
    <div>         (entmod els)</div>
    <div>         (command "measure" dm   200)</div>
    <div>         (setq ssp (acet-ss-to-list (ssget "p")))</div>
    <div>         (foreach pt ssp</div>
    <div>               (command "insert" "cd1" (cdr (assoc 10 (entget pt))) 1 1 0 (rtos cdt 2 0) )</div>
    <div>         )</div>
    <div>         (setq i (1+ i)  )</div>
    <div>)</div>
    <div>(command "erase" pl "")</div>
    <div>(command "undo" "e")</div>
    <div>(setvar "osmode" oldos)</div>
    <div>(princ)</div>
    <div>)</div>
    <div>         

    Bạn cho mình hỏi vẽ cái đường dẫn bằng pl ấy như thế nào nhỉ, chỉ cần cắt các đường đồng mức tại 1 điểm là được ah? Sao mình vẽ rồi chọn vẫn báo lỗi:  "Chon duong dan; error: no function definition: ACET-GEOM-VERTEX-LIST" . Mong bạn hướng dẫn rõ hơn chút. Cám ơn bạn nhiều.


  2. Chào mọi người, mình có bình đồ dạng số hóa (của cục lưu trữ bản đồ), trong đó chủ yếu là các đường đồng mức, nhưng hay bị đứt khúc (ko còn là dạng pline). Mình có thể định nghĩa lại các đường đồng mức này, chắc phải gán cao độ cho từng đường, tuy nhiên rất mất thời gian, không hiểu còn cách nào nhanh hơn không. Mong mọi người chỉ giúp. Hơn nữa mình cũng muốn sau đó đưa được bình đồ này về dạng các điểm có cao độ, mong mọi người cho phương hướng hoặc cho mình các lisp, phần mềm liên quan. Cám ơn cả nhà.

     

    http://www.mediafire.com/?1sp0gselxtwnkxt


  3. Chào mọi người, cho mình hỏi là cao độ thiết kế ở các ô lưới mình cần tự điền vào hay phần mềm tự tính? Ví dụ như khu đất chỉ có 1 số các cao độ thiết kế tại 1 số điểm nhất đinh, vậy là mình phải nội suy rồi điền vào ah? Có phần mềm hay lisp nào tự tính và điền các giá trị cao độ này tương ứng với vị trí mắt lưới ko? Mong mọi người chỉ giùm.


  4. Chào cả nhà, mình có vấn đề sau về cao độ, mong được giúp đỡ.

    Mình có bản vẽ cad về bình đồ, các cao độ trong cad (chẳng hạn 3.90) khi mình chọn và bấm Ctrl 1 thì ở content ghi là 3.90 nhưng ở cao độ (text alignment Z) thì vẫn là 0. Mình cần lisp để biến nó về đúng cao độ mình cần. Mong mọi người giúp đỡ. Cám ơn cả nhà.


  5. Chào các bạn, mình đang gặp tí vấn đề về cao độ, ví dụ như cao độ trên bản cad là 10, nhưng mình xem trong "Ctrl 1" thì nó hiển thị 9.81. Mình xuất thử tọa độ ra text để nhập nova thì vẫn chỉ là 10. Vậy các bạn giúp mình cách để đưa nó về lại 9.81 với. Vấn đề này mình hơi kém, xin các bạn giúp đỡ.

×