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.
toai

Nhờ diễn đàn sửa lisp ghi khoảng cách, cao độ trên cắt ngang

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

Thaistreetz    515
Chào bác 'Thaistreetz' và toàn thể ae diễn đàn. Em thấy lisp của bác rất hay và có tính ứng dụng rất lớn cho dân cầu đường, không biết bác và ae trong diễn đàn có kiến thức về autolisp có thể đầu tư thêm thời gian để phát triển nó thêm 1 chút được hok? cụ thể là nó sẽ điền giá trị cao độ và khoảng cách lẻ vào vị trí mà ta thiết lập (Bảng TN chẳng hạn: cao độ vào hàng cao độ, k/c lẻ vào hàng k/c lẻ). Ngoài ra có thể tự động kẻ đường dóng từ vị trí đó đến bảng TN. Nếu được như vậy thì tuyệt vời quá, hi.

Đứng từ góc độ là người đọc bản vẽ. bạn thấy điều bạn nói ở trên có cần thiết hay không khi mà các thông tin về cao độ và khoảng cách đã được cung cấp đủ trong block cao cao độ? hay nó chỉ làm rối bản vẽ thêm?

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
winter712    8

bác Thaistretz ơi cái linhk " bản vẽ này" của bác hỏng rồi, bác up lại đi cho em xin với, dow đc lip về mà ko dùng đc

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

bác Thaistretz ơi cái linhk " bản vẽ này" của bác hỏng rồi, bác up lại đi cho em xin với, dow đc lip về mà ko dùng đc

Bạn cần gì bạn cứ up bản vẽ của bạn lên rồi mọi người mọi người giúp

Mình có 1 lisp đánh cao độ hoàn công trên file nova

chỉ 1 lệnh là đánh được cao độ toàn bộ trắc ngang

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
trinhtuankx    0

Đây là lisp mình đã rút gọn lại. đồng thời sửa thêm một số chi tiết về nhập số liệu và chế độ bắt điểm để thuận tiện hơn khi sử dụng. Lisp cũng đã tự động load các block cần thiết. bạn chỉ cần copy bản vẽ này vào thư mục D:\Lisp CAD là OK.

(Chú ý là không sử dụng bản vẽ BV1 của bạn nữa nhé. vì các block hơi xấu khi canh lề text, đông thời bản vẽ đó có mấy block không sử dụng nhưng mình không có cách gì purge nó đi được nên lisp load rất chậm)

(defun DXF (code elist)
  (cdr (assoc code elist))
)

(defun c:tn (); / DZ pt y ptside ang OT sc1 scale)
  (vl-load-com)
  (setvar "cmdecho" 0)

(if (not scale) (setq scale 1))
(setq sc1 (getreal (strcat "\n Cao text <"(rtos scale 2 0)">:")))
(if sc1 (setq scale sc1))
(SETQ OSLAST (getvar "OSMODE"))
(setq DZ (getvar "DIMZIN"))
(setvar "DIMZIN" 0)
(setq OT (getvar "ORTHOMODE"))
(setvar "ORTHOMODE" 0)
(command "osmode" 99)
(setq pt0 (osnap (getpoint "Diem tim TN tu nhien <end of> : ") "end")) (print)
(setq x0 (car pt0) y0 (cadr pt0))
(setq ed (entget (car (entsel "\nChon cao do tim: "))))
(setq H0 (read (DXF 1 ed)))	
(command "osmode" 15359) 
(setq pt (getpoint "\nDiem chen: "))

(While (/= pt nil)
(Progn
(setq ptside (getpoint "\nPhia chen:" pt)
ang (angle pt ptside))
(setq y (- (cadr pt) y0 (- H0)))
(setq x (- (car pt) x0))
		 
(cond ((> x 0) (setq x (strcat "" (rtos x 2 2))))
		 ((< x 0) (setq x (rtos (abs x) 2 2)))
		 ((= x 0) (setq x "0.00"))		 )
(cond ((> y 0) (setq y (strcat "+" (rtos y 2 2))))
		 ((< y 0) (setq y (rtos y 2 2)))
		 ((= y 0) (setq y "%%p0.00")))
;(setq x (ustr 0 "Khoang cach: " x T))
;(setq y (ustr 0 "Cao do: " y T))

(if (not (tblsearch "block" "LCD1"))
(progn (command "insert" "D:\\Lisp CAD\\BVTN.dwg" "" "" "" "")
(command "erase" (entlast) "")))

( if (AND (>= ang 0) (< ang 1.5708)) (command "INSERT" "LCD1" pt scale scale "0" x y))
( if (AND (>= ang 1.5708) (< ang 3.1416)) (command "INSERT" "LCD2" pt scale scale "0" y x))
( if (AND (>= ang 3.1416) (< ang 4.7124)) (command "INSERT" "LCD3" pt scale scale "0" x y))
( if (AND (>= ang 4.7124) (< ang 6.2832)) (command "INSERT" "LCD4" pt scale scale "0" y x))

(setq pt (getpoint "\nDiem chen: "))
);pro
);while 
(setvar "OSMODE" OSLAST)
(setvar "DIMZIN" DZ)
(setvar "ORTHOMODE" OT))
;---------------------------------------------------------------------------

Link tải bản vẽ bị hư rồi bác ạ. Bác gửi lại cho em xin với đc ko ạ? Thanks bác nhiều nhiều!

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
thai11000    4

Em cũng là dân giao thông. Thấy cái này của bác hay quá mà em load về dùng không được.

Emlàm theo thao tác lệnh nhưng đến khi pick điểm chèn thì hỏi phía chèn. E thử pick về cả 2 phía đều báo invaid.

Em không hiểu sai ở đâu. Nhưng theo em nghĩ thì mình không cần chọn phía chèn vì vị trí mình chèn đã là bên trái hai bên phải tim rồi.

Chỉ cần điền cao độ và dim từ điểm chèn tới tim là được rồi ạ. Mong các bác giải thích và chỉnh sửa để em làm được. Cảm ơn và chúc mừng năm mớ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

Đây là lisp mình đã rút gọn lại. đồng thời sửa thêm một số chi tiết về nhập số liệu và chế độ bắt điểm để thuận tiện hơn khi sử dụng. Lisp cũng đã tự động load các block cần thiết. bạn chỉ cần copy bản vẽ này vào thư mục D:\Lisp CAD là OK.

(Chú ý là không sử dụng bản vẽ BV1 của bạn nữa nhé. vì các block hơi xấu khi canh lề text, đông thời bản vẽ đó có mấy block không sử dụng nhưng mình không có cách gì purge nó đi được nên lisp load rất chậm)

(defun DXF (code elist)
  (cdr (assoc code elist))
)

(defun c:tn (); / DZ pt y ptside ang OT sc1 scale)
  (vl-load-com)
  (setvar "cmdecho" 0)

(if (not scale) (setq scale 1))
(setq sc1 (getreal (strcat "\n Cao text <"(rtos scale 2 0)">:")))
(if sc1 (setq scale sc1))
(SETQ OSLAST (getvar "OSMODE"))
(setq DZ (getvar "DIMZIN"))
(setvar "DIMZIN" 0)
(setq OT (getvar "ORTHOMODE"))
(setvar "ORTHOMODE" 0)
(command "osmode" 99)
(setq pt0 (osnap (getpoint "Diem tim TN tu nhien <end of> : ") "end")) (print)
(setq x0 (car pt0) y0 (cadr pt0))
(setq ed (entget (car (entsel "\nChon cao do tim: "))))
(setq H0 (read (DXF 1 ed)))	
(command "osmode" 15359) 
(setq pt (getpoint "\nDiem chen: "))

(While (/= pt nil)
(Progn
(setq ptside (getpoint "\nPhia chen:" pt)
ang (angle pt ptside))
(setq y (- (cadr pt) y0 (- H0)))
(setq x (- (car pt) x0))
		 
(cond ((> x 0) (setq x (strcat "" (rtos x 2 2))))
		 ((< x 0) (setq x (rtos (abs x) 2 2)))
		 ((= x 0) (setq x "0.00"))		 )
(cond ((> y 0) (setq y (strcat "+" (rtos y 2 2))))
		 ((< y 0) (setq y (rtos y 2 2)))
		 ((= y 0) (setq y "%%p0.00")))
;(setq x (ustr 0 "Khoang cach: " x T))
;(setq y (ustr 0 "Cao do: " y T))

(if (not (tblsearch "block" "LCD1"))
(progn (command "insert" "D:\\Lisp CAD\\BVTN.dwg" "" "" "" "")
(command "erase" (entlast) "")))

( if (AND (>= ang 0) (< ang 1.5708)) (command "INSERT" "LCD1" pt scale scale "0" x y))
( if (AND (>= ang 1.5708) (< ang 3.1416)) (command "INSERT" "LCD2" pt scale scale "0" y x))
( if (AND (>= ang 3.1416) (< ang 4.7124)) (command "INSERT" "LCD3" pt scale scale "0" x y))
( if (AND (>= ang 4.7124) (< ang 6.2832)) (command "INSERT" "LCD4" pt scale scale "0" y x))

(setq pt (getpoint "\nDiem chen: "))
);pro
);while 
(setvar "OSMODE" OSLAST)
(setvar "DIMZIN" DZ)
(setvar "ORTHOMODE" OT))
;---------------------------------------------------------------------------

Không down được file cad bác ạ

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

 

Đây là lisp mình đã rút gọn lại. đồng thời sửa thêm một số chi tiết về nhập số liệu và chế độ bắt điểm để thuận tiện hơn khi sử dụng. Lisp cũng đã tự động load các block cần thiết. bạn chỉ cần copy bản vẽ này vào thư mục D:\Lisp CAD là OK.

(Chú ý là không sử dụng bản vẽ BV1 của bạn nữa nhé. vì các block hơi xấu khi canh lề text, đông thời bản vẽ đó có mấy block không sử dụng nhưng mình không có cách gì purge nó đi được nên lisp load rất chậm)

(defun DXF (code elist)
  (cdr (assoc code elist))
)

(defun c:tn (); / DZ pt y ptside ang OT sc1 scale)
  (vl-load-com)
  (setvar "cmdecho" 0)

(if (not scale) (setq scale 1))
(setq sc1 (getreal (strcat "\n Cao text <"(rtos scale 2 0)">:")))
(if sc1 (setq scale sc1))
(SETQ OSLAST (getvar "OSMODE"))
(setq DZ (getvar "DIMZIN"))
(setvar "DIMZIN" 0)
(setq OT (getvar "ORTHOMODE"))
(setvar "ORTHOMODE" 0)
(command "osmode" 99)
(setq pt0 (osnap (getpoint "Diem tim TN tu nhien <end of> : ") "end")) (print)
(setq x0 (car pt0) y0 (cadr pt0))
(setq ed (entget (car (entsel "\nChon cao do tim: "))))
(setq H0 (read (DXF 1 ed)))	
(command "osmode" 15359) 
(setq pt (getpoint "\nDiem chen: "))

(While (/= pt nil)
(Progn
(setq ptside (getpoint "\nPhia chen:" pt)
ang (angle pt ptside))
(setq y (- (cadr pt) y0 (- H0)))
(setq x (- (car pt) x0))
		 
(cond ((> x 0) (setq x (strcat "" (rtos x 2 2))))
		 ((< x 0) (setq x (rtos (abs x) 2 2)))
		 ((= x 0) (setq x "0.00"))		 )
(cond ((> y 0) (setq y (strcat "+" (rtos y 2 2))))
		 ((< y 0) (setq y (rtos y 2 2)))
		 ((= y 0) (setq y "%%p0.00")))
;(setq x (ustr 0 "Khoang cach: " x T))
;(setq y (ustr 0 "Cao do: " y T))

(if (not (tblsearch "block" "LCD1"))
(progn (command "insert" "D:\\Lisp CAD\\BVTN.dwg" "" "" "" "")
(command "erase" (entlast) "")))

( if (AND (>= ang 0) (< ang 1.5708)) (command "INSERT" "LCD1" pt scale scale "0" x y))
( if (AND (>= ang 1.5708) (< ang 3.1416)) (command "INSERT" "LCD2" pt scale scale "0" y x))
( if (AND (>= ang 3.1416) (< ang 4.7124)) (command "INSERT" "LCD3" pt scale scale "0" x y))
( if (AND (>= ang 4.7124) (< ang 6.2832)) (command "INSERT" "LCD4" pt scale scale "0" y x))

(setq pt (getpoint "\nDiem chen: "))
);pro
);while 
(setvar "OSMODE" OSLAST)
(setvar "DIMZIN" DZ)
(setvar "ORTHOMODE" OT))
;---------------------------------------------------------------------------

Không down được file cad bác ạ

 

bác nào đã down được file block thì up lại được không ?

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
Superlong    9

 CÓ CÁCH NÀO SỬA LIPS NÀY ĐỂ KO CẦN COPY BLOCK VÀO KHÔNG VÍ DỤ KẾT QUẢ XUẤT RA CHỈ CẦN CHỌN ĐIỂM CHÈN TEXt -> kết quả có dạng  " cao độ ; k/c tới tim " vậy thì lips này sẽ linh động hơn nhìu  mặc dù ko dc đẹp là mấy so vs thể hiện = block

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

 CÓ CÁCH NÀO SỬA LIPS NÀY ĐỂ KO CẦN COPY BLOCK VÀO KHÔNG VÍ DỤ KẾT QUẢ XUẤT RA CHỈ CẦN CHỌN ĐIỂM CHÈN TEXt -> kết quả có dạng  " cao độ ; k/c tới tim " vậy thì lips này sẽ linh động hơn nhìu  mặc dù ko dc đẹp là mấy so vs thể hiện = block

Cái này cũng có chỉ cần tính toán lại các điểm đặt nhưng hơi vất vã do nó còn phụ thuộc vào chiều cao chữ với lại khi muốn xóa 1 cao độ nào đó phải chọn nhiều đối tượng để xóa----> làm block nó tiện hơn.

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
Superlong    9

vì mình định sau khi đo xong khoảng cách tới tim và cao độ xog sẽ xuất các text đó + với text lý trình RA excel theo thứ tự từng mặt cắt nửa nên muốn nhờ các bạn chuyển cái block đó về dạng text : " cao độ ; k/c toi tim " 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

vì mình định sau khi đo xong khoảng cách tới tim và cao độ xog sẽ xuất các text đó + với text lý trình RA excel theo thứ tự từng mặt cắt nửa nên muốn nhờ các bạn chuyển cái block đó về dạng text : " cao độ ; k/c toi tim " thôi 

Chắc bạn làm phân lớp đất đắp????

có cái này bạn tham khảo xem thế nào??

http://www.cadviet.com/forum/topic/118099-lisp-phan-lop-dat-dap-thong-ke-thep-in-tu-dong-moi-viet/

  • Vote tăng 1

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
DRACULA115    0

mình mới tập làm nên nhiều cái chưa rõ nhờ bạnThaistreetz 

 giúp mình với mình ko có bản vẽ để copy vào ổ D nhờ bạn gửi vào gmail trungdra115@gmail.com giúp mình với 

thank bạn nhiều mình tải lisp về mà vẫn chưa sử dụng đc. mong bạn giúp đỡ

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
xuyengtvt    0

Mình gửi các bạn cần Lisp pick Cao độ và khoảng cách tới Tim nhé :D
Có hướng dẫn kèm theo :D

- Bước 1: Mở file cad "BV1" kèm theo, copy hết các mũi tên trong bản vẽ, paste vào file có trắc ngang. Paste vào chỗ nào cũng dc

- Bước 2: Load lisp kèm theo.
- Bước 3: Gõ lệnh "cx" rồi làm theo hướng dẫn

Link: http://www.cadviet.com/upfiles/6/149085_lips_cao_do.ra

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


×