Chuyển đến nội dung
Diễn đàn CADViet
Đăng nhập để thực hiện theo  
vminh_ct

lisp làm giá trị elevation của pl bằng 0

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

nhờ các bác viết hộ em lisp làm cho giá trị elevation của các đưuờng Pl trong bình đồ về 0 nhé. Thanks.

Không biết Giá trị này có nghĩa gì, mong các Bro chỉ 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
Giá trị elevation là cao độ của pl đó bạn ạ.

 

Mình dùng lệnh flatten xong thì mất luôn đường pline. Làm sao để khắc phục nhỉ.

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ờ các bác viết hộ em lisp làm cho giá trị elevation của các đưuờng Pl trong bình đồ về 0 nhé. Thanks.

Không biết Giá trị này có nghĩa gì, mong các Bro chỉ giúp.

 

Từ AutoCad 2004 trở đi thì có chế độ chọn đối tượng = hộp thoại

Bạn có thể bấm Ctrl+1 : chon các đường đồng mức

Sau đó chỉnh cao độ Z (hoặc Elevation) các đường pline đòng mức về = 0 là OK

nhanh gọn

:s_big:

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ờ các bác viết hộ em lisp làm cho giá trị elevation của các đưuờng Pl trong bình đồ về 0 nhé. Thanks.

Không biết Giá trị này có nghĩa gì, mong các Bro chỉ giúp.

 

Bài viết cách đây 2 năm r cơ đấy :0

Hì, bạn thử dùng lisp này để đổi cao độ của PL xem. Mình thấy trên mạng có khá nhiều nên cũng bị loạn, lấy tạm cái này cho bạn Toto ^^

Các chức năng của nó:

Program to process of several polylines to simultaneously.

The user can blatently select a group of entites, the program

will filter out non-polylines. The user is then prompted to

select one of the following properties to be manipulated:

 

Width - change all selected plines to the specified width

Elev - change all selected plines to the specified elev

Layer - change all selected plines to the specified layer

Area - calculate the total area of the selected plines

Color - change all selected plines to the specified color

(use -1 for BYLAYER)

2d - convert 3D plines to 2D plines (all 2D & 3D plines

are set to 0 elev)

3d - convert 2D plines to 3D plines (existing 3D plines

are unaffected)

 (DEFUN ERR_FUN (MSG$)(PRINC "\nError: ")(PRINC MSG$)(SETQ *ERROR* OLDERR)  (PRINC)
)(DEFUN HLP_OPT (PROG$)(TEXTPAGE)(SETQ FILE$ (FINDFILE (STRCAT PROG$ ".DOC")))(SETQ I% 1)
(IF (NOT FILE$)(PRINC "\n Chu y : Phien ban da bo file Help \n")(PROGN (SETQ FILE~ (OPEN FILE$ "r")) 
(SETQ A$ "")(WHILE A$ (SETQ A$ (READ-LINE FILE~))  (PRINC A$)(PRINC "\n")  (IF (= (- (/ I% 24.0) (/ I% 24)) 0)
(GETSTRING "An Enter de tiep tuc.."))(SETQ I% (+ I% 1)))(CLOSE FILE~)))(PRINC "\n")
)(DEFUN CHG_PL (SSL% NSS# CODE% VALU%)(SETVAR "highlight" 0)(SETQ I% 0)  (WHILE (> SSL% 0) 
(SETQ ENT@ (SSNAME NSS# (SETQ SSL% (- SSL% 1))))  (COND ((= CODE% 10)(PT_ELEV ENT@ CODE% VALU!) 
)((= CODE% 70)(PT_ELEV ENT@ CODE% VALU!)  (IF (= VALU! 32) (SETQ VALU! 8))(SETQ ENT* (ENTGET ENT@)) 
(SETQ ENT* (SUBST  (CONS 70 VALU!)(ASSOC 70 ENT*)  ENT*  ))(ENTMOD ENT*)  )(((SETQ ENT* (ENTGET ENT@))  (IF (ASSOC CODE% ENT*)  (SETQ ENT* (SUBST  (CONS 99 99999) 
(ASSOC CODE% ENT*)  ENT*  )))(ENTMOD ENT*)  )(T  (SETQ ENT* (ENTGET ENT@))  (IF (ASSOC CODE% ENT*) 
(SETQ ENT* (SUBST  (CONS CODE% VALU!)  (ASSOC CODE% ENT*)  ENT* ))  (SETQ ENT* (APPEND ENT* (LIST (CONS CODE% VALU!))) 
))(ENTMOD ENT*)  ))(SETQ I% (+ I% 1))  (ENTUPD ENT@)  )(SETVAR "highlight" 1)(PRINT I%)(PRINC " Polylines da duoc xu ly. ")
)(DEFUN PT_ELEV (ENT@ CODE% VALU!)(SETQ PTS% 0)  (SETQ VT@ ENT@)  (SETQ VT* (ENTGET VT@)) 
(SETQ VT$ (CDR (ASSOC 0 VT*)))  (WHILE (/= VT$ "SEQEND")  (IF (= CODE% 10)(PROGN
(SETQ POSN* (ASSOC 10 VT*))  (SETQ NPOS*  (LIST 10 (NTH 1 POSN*)  (NTH 2 POSN*) 
VALU!  ))(SETQ VT* (SUBST NPOS* POSN* VT*))  )(IF (ASSOC CODE% VT*)  (SETQ VT* (SUBST 
(CONS CODE% VALU!)  (ASSOC CODE% VT*)  VT*  ))(SETQ VT* (APPEND VT* (LIST (CONS CODE% VALU!))) 
)))(ENTMOD VT*)  (SETQ PTS% (+ PTS% 1))  (SETQ VT@ (ENTNEXT VT@))  (SETQ VT* (ENTGET VT@)) 
(SETQ VT$ (CDR (ASSOC 0 VT*)))  ))(DEFUN C:PT ()(SETQ OLDERR *ERROR*)  (SETQ *ERROR* ERR_FUN) 
(SETVAR "CMDECHO" 0)  (PRINC "\n\nFree lisp from cadviet.com @ ketxu")
(SETQ SS# (SSGET))(IF (NULL SS#)(PROGN (PRINC "\nLoi : Khong co doi tuong nao de xu ly.")(EXIT)
))(SETQ SUMW! 0.0)  (SETQ SUME! 0.0)  (SETQ SUMA! 0.0)  (SETQ SUMP! 0.0)  (SETQ SSL% (SSLENGTH SS#)) 
(SETQ NSS# (SSADD))  (PRINC "\nDang kiem tra.... ")(WHILE (> SSL% 0) 
(SETQ ENT@ (SSNAME SS# (SETQ SSL% (- SSL% 1))))  (IF (= (CDR (ASSOC 0 (ENTGET ENT@))) "POLYLINE") 
(PROGN (SSADD ENT@ NSS#)  (SETQ ENT* (ENTGET ENT@))  (SETQ SUME! (+ SUME! (NTH 3 (ASSOC 10 ENT*))))
(SETQ SUMW! (+ SUMW! (CDR (ASSOC 40 ENT*))))(COMMAND "AREA" "E" ENT@)(SETQ SUMA! (+ SUMA! (GETVAR "AREA")))
(SETQ SUMP! (+ SUMP! (GETVAR "PERIMETER"))))))(SETQ SSL% (SSLENGTH NSS#))  (PRINT SSL%)(PRINC " plines duoc tim thay. \n")
(PRINC " Cao do trung binh =") (PRINC (/ SUME! SSL%))  (PRINC " Do day trung binh = ")(PRINC (/ SUMW! SSL%)) 
(PRINC " Tong dien tich ")(PRINC SUMA!)(PRINC " Tong chu vi= ")(PRINC SUMP!)(SETQ OPT$ "1") 
(WHILE (/= OPT$ "X")(INITGET "Elev Width Layer Color 2d 3d ?")(SETQ OPT$ (GETKWORD "\nElev/Width/Layer/Color/2d/3d/? : "))
(COND ((= OPT$ "?")  (HLP_OPT "PT"))((= OPT$ "Elev")  (INITGET (+ 1 4))(SETQ VALU! (GETREAL "Nhap chieu cao moi "))
(SETQ CODE% 10)(CHG_PL SSL% NSS# CODE% VALU!))((= OPT$ "Width")  (INITGET (+ 1 4))
(SETQ VALU! (GETREAL "Nhap chieu day net moi : "))(SETQ CODE% 40)(CHG_PL SSL% NSS# CODE% VALU!)
(SETQ CODE% 41)(CHG_PL SSL% NSS# CODE% VALU!))((= OPT$ "Layer")  (INITGET)(SETQ VALU! (GETSTRING "Nhap ten Layer moi "))
(SETQ CODE% 8)(CHG_PL SSL% NSS# CODE% VALU!))((= OPT$ "Color")  (INITGET (+ 1))(SETQ VALU! (GETREAL "Nhap so cua mau : "))
(SETQ CODE% 62)(CHG_PL SSL% NSS# CODE% VALU!))((= OPT$ "2d")  (SETQ VALU! 0)(SETQ CODE% 10)
(CHG_PL SSL% NSS# CODE% VALU!)(SETQ VALU! 0)(SETQ CODE% 70)(CHG_PL SSL% NSS# CODE% VALU!)
)((= OPT$ "3d")  (SETQ VALU! 32)(SETQ CODE% 70)(CHG_PL SSL% NSS# CODE% VALU!))(T 
(SETQ OPT$ "X"))))(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
nhờ các bác viết hộ em lisp làm cho giá trị elevation của các đưuờng Pl trong bình đồ về 0 nhé. Thanks.

Không biết Giá trị này có nghĩa gì, mong các Bro chỉ giúp.

khi dùng lệnh Flatten thì máy chạy rất nặng và có nhiều "phản ứng phụ" lắm. bạn dùng thử Lisp này xem. nó có thể đưa tất cả các dt về ele 0. line, pline, xline, block.....

vì khi vẽ hay gặp các dt có elevation /= 0, sẽ khó khăn trong việc vẽ, như tìm diểm giao nhau, lệnh Fillet...

http://www.cadviet.com/upfiles/3/ew.lsp

  • 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

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  

×