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

hellocadviet

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

    25
  • Đã tham gia

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

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


  1. Có lẽ các bạn chưa hiểu ý mình. Nếu mà đã định nghĩa tuyến rồi thì không nói làm gì. Giả sử là mình chỉ copy được cái hướng tuyến ấy thôi, bây giờ làm sao để đưa cái tuyến ấy vào bản vẽ Nova nó hiểu ngay là tuyến ấy đã được định nghĩa mà không cần khai báo lại. Vì khi mình nhập số liệu hiện trạng vào nó cứ hỏi là chưa có cọc trên tuyến. Nếu định nghĩa lại tuyến thì lại phải khai báo khoảng cách cọc và cắm thêm các cọc chi tiết, ...


  2. Bản vẽ mình chỉ có là hướng tuyến và các cọc trên tuyến đó thôi. Bây giờ mình muốn dùng những thứ trên và số liệu đo (file text) ngoài thực địa để xuất ra trắc ngang. Mục đích là để trùng với các mặt cắt ngang thiết kế. Sau đó là áp vào các mặt cắt ngang thiết kế để tính khối lượng.

    Đây là file mình có:


  3. Mình có file thiết kế tuyến đường: đường tim tuyến và các cọc trên đó. Bây giờ mình có số liệu đo ngoài thực địa và muốn cắt ra các mặt cắt ngang chính xác tại vị trí các cọc mà file thiết kế kia đã định nghĩa (mình không phải định nghĩa lại tuyến đường và đặt các thông số trong phát sinh cọc và bố trí cong nằm). Các bác giúp cho em. Em mới làm quen với Nova :undecided:


  4. Mình dùng lệnh (setq a (entget (car (entsel)))) để lấy toạ độ các đỉnh của Polilyne nhưng thấy rằng toạ độ nhận được và toạ độ hiển thị trên màn hình (dùng lệnh id) không trùng nhau. Việc này dẫn đến mình dùng lisp inan không thể in được. Khi in đều in ra giấy trắng trong khi bản vẽ đã bật hết các lớp. Các bác cho em hỏi là bị sao và cách khắc phục với ạ. Cảm ơn các bác :D

    Đây là một trắc ngang trong file của em:


  5. Vấn đề là máy mình dùng chung nên mình tạo ra một tài khoản Limited ccount nữa. Máy mình cài Windows SP3, phân vùng các ổ định dạng NTFS. Đã cấp quyền Full Control cho tất cả thư mục AutoCAD 2004, Land Desktop 2004, và Autodesk trong Application Data nhưng chạy Land đều báo lỗi thiếu file base.dcl.... và nhiều file khác nữa. Khi chạy được lên thì không hiện thanh công cụ, các lệnh không sử dụng được. Các bác cho em hướng giải quyết với. Cảm ơn các bác nhiều ạ.


  6. Mình có file làm xong muốn in mà không in được, chỉ thấy một số thứ, những thứ còn lại chẳng thấy đâu cả. Đã kiểm tra không có gì ẩn. In ra thì chỉ thấy được một vài thứ và có một đường mờ mờ mà trong bản vẽ không kiếm đâu ra. Mong các bác giúp em, em ức chế lắm.

    http://rcpt.yousendit.com/701261362/1e06a6...bc37110dd8846ec


  7. Đây là hình ảnh trước khi in:

    Layout_Truockhiin.jpg

    Đây là hình ảnh khi preview:

    Layout_Saukhiin.jpg

    Đây là link download file CAD về, các bác giúp em với:

    http://www.mediafire.com/?hamezjdhyhg

     

    Lỗi tiếp theo là cái khung nhìn sơ hoạ vị trí ấy. Khi cho khung nhìn ấy vào thì nó không hiện lên các đối tượng bên trong mặc dù mình đã dùng lệnh che để che các đối tượng. Trong bản vẽ hiện giờ hiện lên được là vì vị trí khung nhìn 2 mình đã xoá các đối tượng trong model đi rồi.


  8. Không hiểu bản vẽ này bị làm sao mà mình không thể nào in được nó (không nhìn thấy khi in).

    Thêm nữa là không hiểu sao khi dùng layout thì khi tạo layout cho sơ hoạ vị trí (layout nhỏ) trong layout lớn thì nó không thể hiển thị được mặc dù mình đã dùng lệnh che rồi.

    http://www.cadviet.com/upfiles/ACAD_De_qua...D1_220808_1.dwg


  9. Mình cũng gặp phải vấn đề là tìm chiều rộng một chữ nào đó. Khi dimlinear khoảng cách giữa 2 điểm nếu độ rộng chữ lớn hơn khoảng cách giữa 2 điểm này thì chữ sẽ tự động xoay 90 độ. (Ví dụ khoảng cách là 20.36 - độ rộng của chữ 20.36 là 21 chẳng hạn thì nó sẽ tràn ra 2 bên đường gióng trông xấu). Các bác giúp giùm.


  10. Hỏi về hàm *error*

    Có đoạn lisp như thế này:

    (defun c:drawline () ;define function

    (setq temperr *error*) ;store *error*

    (setq *error* trap1) ;re-assign *error*

    (setq oldecho (getvar "cmdecho")) ;store variables

    (setq oldlayer (getvar "clayer"))

    (setq oldsnap (getvar "osmode"))

    (setvar "cmdecho" 0) ;set variables

    (setvar "osmode" 32)

    (command "undo" "m") ;undo mark

    (setq pt1 (getpoint "\nPick First Point: ")) ;get points

    (setq pt2 (getpoint pt1 "\nPick Second Point: "))

    (command "LAYER" "M" "2" "") ;change layer

    (command "Line" pt1 pt2 "") ;draw line

    (setq pt3 (getpoint pt2 "\nPick Third Point: "));get 3rd point

    (setvar "osmode" 0) ;switch off snap

    (command "Line" pt2 pt3 "") ;draw line

    (setvar "clayer" oldlayer) ;reset variables

    (setvar "osmode" oldsnap)

    (setvar "cmdecho" oldecho)

    (setq *error* temperr) ;restore *error*

    (princ)

    )

     

    (defun trap1 (errmsg) ;define function

    (command "u" "b") ;undo back

    (setvar "osmode" oldsnap) ;restore variables

    (setvar "clayer" oldlayer)

    (setvar "cmdecho" oldecho)

    (setq *error* temperr) ;restore *error*

    (prompt "\nResetting System Variables ") ;inform user

    (princ)

    )

     

    (setq temperr *error*) ;store *error*

    (setq *error* trap1) ;re-assign *error*

     

    - Hàm *error* có đối số bắt buộc (*error* string) vậy tại sao ở ví dụ trên lại không có?

    - Hàm (setq *error* trap1) được chạy ngay hay khi có lỗi thì mới chạy?

    - Sau hàm setq thì đối số sau nó không được thực thi nhưng tại sao hàm *error* được gọi khi có lỗi xuất hiện (hàm trap1 được chạy).

    - Lisp biên dịch tuần tự từng dòng một, vậy khi ta chạy đến dòng lệnh yêu cầu “Pick fist point:” chẳng hạn mà gây lỗi thì tại sao hàm *error* vẫn được gọi? (quay ngược trở lại phía trên).

    - Khi xuất hiện lỗi thì cả hai hàm sau đều thực hiện?

    (setq *error* trap1) (phần đầu)
    (setq *error* temperr) (phần cuối)

    Vậy những dòng lệnh sau bị thừa (vì trong hàm trap1 đã có)?

    (setq *error* temperr)

    (setvar "osmode" oldsnap) ;restore variables

    (setvar "clayer" oldlayer)

    (setvar "cmdecho" oldecho)

    (setq *error* temperr)

    Xin cảm ơn nhiều (đang bị cái hàm bắt lỗi error làm đau đầu quá)

    • Vote tăng 1

  11. Tình hình là mình hay phải tính cao độ và khoảng cách của các điểm trong mặt cắt ngang. Mình đã tìm được lisp tính cao độ tự động khi tích vào các điểm và đã thêm vào một số lệnh để nó có thể dóng đường thẳng xuống tự động, nhưng mình chưa biết làm sao để tính khoảng cách giữa các điểm đã tích vào. Các bác giúp giùm em nhé. Cảm ơn các bác nhiều.

    //------------
    (defun c:nn()
    	(setq fp (getpoint "\nChon diem goc:"))
    	(setq hf (getreal "\nNhap cao do goc:"))
    	(setq up (getpoint "\nChon diem dau cao do: "))
    	(setq ip (getpoint "\nChon vi tri ghi cao do:"))
    	(setq dd (getpoint "\nChon diem dat duong dong: "))
    	(setq yip (cadr ip))
    	(setq yup (cadr up))
    	(setq yfp (cadr fp))
    	(setq ydd (cadr dd))
    	(while
    	(setq sp (getpoint "\nChon diem can tinh cao do:"))	
    	(setq xsp (car sp))
    	(setq z (+ yip (/ (- yup yip) 2)))
    	(setq ipp (list xsp z))
    	(setq a (list xsp yip))
    	(setq b (list xsp ydd))
    	(setq c (list xsp yfp))
    	(setq ysp (cadr sp))
    	(setq ysp (+ hf (- ysp yfp)))
    	(setq ysp (rtos ysp 2 2))		
    	(command "line" a b "")
    	(command "line" sp c "")
    	(command ".text" "J" "mc" ipp "90.0" ysp)
    	(princ)
    	)
    )
    //--------------

×