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.
Đăng nhập để thực hiện theo  
tien2005

[Đã xong] lisp sắp xếp các DIM

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

tien2005    97

Trước đây trên cadviet đã có lisp sắp xếp các DIM mình đã dùng nhưng chưa vừa ý. Hôm nay mình viết lại lisp sắp DIM với những đặc điểm sau:

- sắp được các DIM ngang, đứng, nghiêng

- sắp cùng lúc các DIM ngang và đứng

- trong 1 dòng lệnh sắp DIM:

+ Đường dóng các DIM sau không cắt ngang qua các DIM trước

+ Lần chọn thứ nhất gồm các DIM ngang và đứng, lần 2 chỉ có DIM ngang, lần 3 có các DIM ngang và đứng thì DIM đứng ở lần 3 vẫn được sắp sát vào DIM đứng ở lần 1

 

Mặc định thì chiều dài đường dóng bằng 3 lần chiều cao text của DIM, khoảng cách giữa 2 lớp DIM bằng 4 lần chiều cao text của DIM. Nếu muốn tahy đổi các giá tri này thì các Bạn thay đổi 2 dòng sau:

d1014 (* 3 h_textdim);chieu dai duong dong

d2d (* 4 h_textdim);k/c giua 2 duong kich thuoc

 

(defun c:sd ( / lstd pt xpt ypt xp yp pt1 goc h_textdim angdim
 	p10 p11 p13 p14 oldp10 oldp11 oldp13 oldp14)

 (defun angdim (ent / pd pc goc1);doan code nay cua Doan Van Ha: Thanks
(setq pd (cdr (assoc 10 (entget (entnext (entnext (cdr (assoc -2 (tblsearch "BLOCK" (cdr (assoc 2 (entget ent (list "*")))))))))))))
(setq pc (cdr (assoc 10 (entget (entnext (entnext (entnext (cdr (assoc -2 (tblsearch "BLOCK" (cdr (assoc 2 (entget ent (list "*"))))))))))))))

  (if (or (= (getvar "dimtad") 0) (= (getvar "dimtad") 1))
	(setq goc1 (angle pd pc))
	(setq goc1 (- (angle pd pc) (/ pi 2)))
	)
goc1
)

 (setq #OSMODE (getvar "OSMODE"))
 (command "_.Undo" "be")
 (setvar "cmdecho" 0)
 (setvar "OSMODE" 0)
 (princ "\nChon cac DIM can sap xep")
 (while (setq lstd (ssget (list(cons 0 "DIMENSION")(cons -4 "<OR")(cons 70 32)(cons 70 33)(cons 70 64)(cons 70 65)(cons 70 128)(cons 70 129)
(cons 70 96)(cons 70 97)(cons 70 160)(cons 70 161)(cons 70 196)(cons 70 197)(cons 70 224)(cons 70 225)(cons -4 "OR>")
;(cons -4 "<OR")(cons 50 0)(cons 50 pi)(cons 50 (/ pi 2))(cons 50 (* 1.5 pi))(cons -4 "OR>")
)
 	)
   	)

(setq lstd (vl-remove-if 'listp (mapcar 'cadr (ssnamex lstd))))
(or h_textdim (setq h_textdim (cdr (assoc 140 (tblsearch "DIMSTYLE" (cdr (assoc 3 (entget (car lstd)))))));chieu cao text dim
  d1014 (* 3 h_textdim);chieu dai duong dong
  d2d (* 4 h_textdim);k/c giua 2 duong kich thuoc
  pt (getpoint "\nChon vi tri moi cua chan duong giong kich thuoc")
  xpt (car pt)
  ypt (cadr pt)
  xp xpt
  yp ypt
  pt1 pt
  )
)
(while lstd
 	(setq en (car lstd)
	goc (angdim en)
	en (entget en)
	oldp10 (cdr(assoc 10 en))
	oldp11 (cdr(assoc 11 en))
	oldp13 (cdr(assoc 13 en))
	oldp14 (cdr(assoc 14 en))
	delta_y (- (cadr oldp10)(cadr oldp11))
	delta_x (- (car oldp10)(car oldp11))
	)
 	(cond
((= (rem goc pi) 0.0)(setq p13 (list (car oldp13) ypt (caddr oldp13)); DIM ngang
  	p14 (list (car oldp14) ypt (caddr oldp14))
  	p10 (polar p14 (angle p14 oldp10) d1014)
  	p11 (list (car oldp11) (- (cadr p10) delta_y) (caddr oldp11))
  	yp (cadr (polar p14 (angle p14 oldp10) d2d))
  	)
 )
((= (rem goc (* pi 0.5)) 0.0)(setq p13 (list xpt(cadr oldp13) (caddr oldp13)); DIM dung
   	p14 (list xpt (cadr oldp14) (caddr oldp14))
   	p10 (polar p14 (angle p14 oldp10) d1014)
   	p11 (list (- (car p10) delta_x) (cadr oldp11) (caddr oldp11))
   	xp (car (polar p14 (angle p14 oldp10) d2d))
   	)
 )
(t (if (equal (distance oldp10 oldp14) 0.0 0.00001); DIM nghieng
 	(progn
   	(setq p13 (inters (polar oldp13 (+ goc (* pi 0.5)) d1014) oldp13 pt (polar pt goc d1014) nil)
  	p14 (inters (polar oldp14 (+ goc (* pi 0.5)) d1014) oldp14 pt (polar pt goc d1014) nil); DIM ali
  	)
   	)
 	(progn
   	(setq p13 (inters (polar oldp13 goc d1014) oldp13 pt (polar pt (+ goc (* pi 0.5)) d1014) nil)
  	p14 (inters oldp14 oldp10 pt (polar pt (+ goc (* pi 0.5)) d1014) nil)
  	)
   	)
 	)
 (setq p10 (polar p14 (angle p14 oldp10) d1014)
   	p11 (polar oldp11 (angle oldp10 p14) (distance p10 oldp10))
   	pt1 (polar pt (angle p14 oldp10) d2d)
   	)
 )
);cond

 	(setq en (subst (cons 13 p13)(assoc 13 en) en)
	en (subst (cons 14 p14)(assoc 14 en) en)
	en (subst (cons 10 p10)(assoc 10 en) en)
	en (subst (cons 11 p11)(assoc 11 en) en)
	lstd (cdr lstd)
	)
 	(entmod en)
 	);for
(princ "\nChon cac DIM can sap xep")
(setq xpt xp ypt yp pt pt1)
);while
 (setvar "OSMODE" #OSMODE)
 (command "_.Undo" "en")
 (princ)
 )

  • 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
avi612    15

Đã text thử lisp của bạn, nhưng ko được như ý.

Khi load Dim xong.

Gõ lệnh: sd

Chọn đối tượng: là các Dimension. --->Enter

Chọn vị trí mới của chân đường giống kích thước: pick điểm --->Enter

Kết quả tất cả các Dim mang giá trị 0 và nằm chung 1 chỗ.....

Bạn xem lại 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
SoftvnBin    3

lisp k ra 1 cái kiểu gì và cũng mất luôn bắt điểm các giá trị dim thì về 0

Bạn không nên nói vậy, dù gì thì tien2005 cũng rất nhiệt tình share cho ae dùng và test thử mà, lisp ngon thì liệu tien2005 có được gì không, hay chỉ có mấy bạn load về có lợi thôi, không có những người share như tien2005 liệu bạn sẽ làm kiểu gì (nếu không biết lập trình lisp)

  • 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
tien2005    97

Các Bạn thử lại lisp sau

(defun c:sd ( / lstd pt xpt ypt xp yp pt1 goc h_textdim
 	p10 p11 p13 p14 oldp10 oldp11 oldp13 oldp14)
 (setq #OSMODE (getvar "OSMODE"))
 (command "_.Undo" "be")
 (setvar "cmdecho" 0)
 (setvar "OSMODE" 0)
 (princ "\nChon cac DIM can sap xep")
 (while (setq lstd (ssget (list(cons 0 "DIMENSION");"AcDbAlignedDimension" "AcDbRotatedDimension"
   	(cons -4 "<OR")(cons 70 32)(cons 70 33)(cons 70 64)(cons 70 65)(cons 70 128)(cons 70 129)
(cons 70 96)(cons 70 97)(cons 70 160)(cons 70 161)(cons 70 196)(cons 70 197)(cons 70 224)(cons 70 225)(cons -4 "OR>")
   	;(cons -4 "<OR")(cons 50 0)(cons 50 pi)(cons 50 (/ pi 2))(cons 50 (* 1.5 pi))(cons -4 "OR>")
   	)
  )
   	)
(setq lstd (vl-remove-if 'listp (mapcar 'cadr (ssnamex lstd))))
(or h_textdim (setq h_textdim (cdr (assoc 140 (tblsearch "DIMSTYLE" (cdr (assoc 3 (entget (car lstd)))))));chieu cao text dim
  d1014 (* 3 h_textdim);k/c tu chan duong giong den duong ghi kich thuoc
  d2d (* 4 h_textdim);k/c giua 2 duong kich thuoc
  pt (getpoint "\nChon vi tri moi cua chan duong giong kich thuoc")
  xpt (car pt)
  ypt (cadr pt)
  xp xpt
  yp ypt
  pt1 pt
  )
)
(while lstd
 	(setq en (entget (car lstd))
	oldp10 (cdr(assoc 10 en))
	oldp11 (cdr(assoc 11 en))
	oldp13 (cdr(assoc 13 en))
	oldp14 (cdr(assoc 14 en))
	goc (angle oldp14 oldp10)
	delta_y (- (cadr oldp10)(cadr oldp11))
	delta_x (- (car oldp10)(car oldp11))
	)
 	(cond

((= (rem goc pi) 0.0)(setq p13 (list xpt(cadr oldp13) (caddr oldp13)); DIM dung
  	p14 (list xpt (cadr oldp14) (caddr oldp14))
  	p10 (polar p14 (angle p14 oldp10) d1014)
  	p11 (list (- (car p10) delta_x) (cadr oldp11) (caddr oldp11))
  	xp (car (polar p14 (angle p14 oldp10) d2d))
  	)
 )
((= (rem goc (* pi 0.5)) 0.0)(setq p13 (list (car oldp13) ypt (caddr oldp13)); DIM ngang
   	p14 (list (car oldp14) ypt (caddr oldp14))
   	p10 (polar p14 (angle p14 oldp10) d1014)
   	p11 (list (car oldp11) (- (cadr p10) delta_y) (caddr oldp11))
   	yp (cadr (polar p14 (angle p14 oldp10) d2d))
   	)
 )
(t(setq p13 (inters (polar oldp13 goc d1014) oldp13 pt (polar pt (+ goc (* pi 0.5)) d1014) nil)
p14 (inters oldp14 oldp10 pt (polar pt (+ goc (* pi 0.5)) d1014) nil); DIM ali
p10 (polar p14 (angle p14 oldp10) d1014)
p11 (polar oldp11 (angle oldp10 p14) (distance p10 oldp10))
pt1 (polar pt (angle p14 oldp10) d2d)
)
 )
)
 	(setq en (subst (cons 13 p13)(assoc 13 en) en)
	en (subst (cons 14 p14)(assoc 14 en) en)
	en (subst (cons 10 p10)(assoc 10 en) en)
	en (subst (cons 11 p11)(assoc 11 en) en)
	lstd (cdr lstd)
	)
 	(entmod en)
 	);for
(princ "\nChon cac DIM can sap xep")
(setq xpt xp ypt yp pt pt1)
);while
 (setvar "OSMODE" #OSMODE)
 (command "_.Undo" "en")
 (princ)
 )

 

Lưu ý: các đường DIM nghiêng có điểm dóng (dxf14) nằm trên đường ghi kích thước có nghĩ là không có đường dóng thì sẽ không đúng

lisp ở bài #1 để mình xem lại cách tính góc nghiêng cho chính xác hơn

  • Vote tăng 2

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
cad2080    3

Các Bạn thử lại lisp sau

(defun c:sd ( / lstd pt xpt ypt xp yp pt1 goc h_textdim
 	p10 p11 p13 p14 oldp10 oldp11 oldp13 oldp14)
 (setq #OSMODE (getvar "OSMODE"))
 (command "_.Undo" "be")
 (setvar "cmdecho" 0)
 (setvar "OSMODE" 0)
 (princ "\nChon cac DIM can sap xep")
 (while (setq lstd (ssget (list(cons 0 "DIMENSION");"AcDbAlignedDimension" "AcDbRotatedDimension"
   	(cons -4 "<OR")(cons 70 32)(cons 70 33)(cons 70 64)(cons 70 65)(cons 70 128)(cons 70 129)
(cons 70 96)(cons 70 97)(cons 70 160)(cons 70 161)(cons 70 196)(cons 70 197)(cons 70 224)(cons 70 225)(cons -4 "OR>")
   	;(cons -4 "<OR")(cons 50 0)(cons 50 pi)(cons 50 (/ pi 2))(cons 50 (* 1.5 pi))(cons -4 "OR>")
   	)
  )
   	)
(setq lstd (vl-remove-if 'listp (mapcar 'cadr (ssnamex lstd))))
(or h_textdim (setq h_textdim (cdr (assoc 140 (tblsearch "DIMSTYLE" (cdr (assoc 3 (entget (car lstd)))))));chieu cao text dim
  d1014 (* 3 h_textdim);k/c tu chan duong giong den duong ghi kich thuoc
  d2d (* 4 h_textdim);k/c giua 2 duong kich thuoc
  pt (getpoint "\nChon vi tri moi cua chan duong giong kich thuoc")
  xpt (car pt)
  ypt (cadr pt)
  xp xpt
  yp ypt
  pt1 pt
  )
)
(while lstd
 	(setq en (entget (car lstd))
oldp10 (cdr(assoc 10 en))
oldp11 (cdr(assoc 11 en))
oldp13 (cdr(assoc 13 en))
oldp14 (cdr(assoc 14 en))
goc (angle oldp14 oldp10)
delta_y (- (cadr oldp10)(cadr oldp11))
delta_x (- (car oldp10)(car oldp11))
)
 	(cond

((= (rem goc pi) 0.0)(setq p13 (list xpt(cadr oldp13) (caddr oldp13)); DIM dung
  	p14 (list xpt (cadr oldp14) (caddr oldp14))
  	p10 (polar p14 (angle p14 oldp10) d1014)
  	p11 (list (- (car p10) delta_x) (cadr oldp11) (caddr oldp11))
  	xp (car (polar p14 (angle p14 oldp10) d2d))
  	)
 )
((= (rem goc (* pi 0.5)) 0.0)(setq p13 (list (car oldp13) ypt (caddr oldp13)); DIM ngang
   	p14 (list (car oldp14) ypt (caddr oldp14))
   	p10 (polar p14 (angle p14 oldp10) d1014)
   	p11 (list (car oldp11) (- (cadr p10) delta_y) (caddr oldp11))
   	yp (cadr (polar p14 (angle p14 oldp10) d2d))
   	)
 )
(t(setq p13 (inters (polar oldp13 goc d1014) oldp13 pt (polar pt (+ goc (* pi 0.5)) d1014) nil)
p14 (inters oldp14 oldp10 pt (polar pt (+ goc (* pi 0.5)) d1014) nil); DIM ali
p10 (polar p14 (angle p14 oldp10) d1014)
p11 (polar oldp11 (angle oldp10 p14) (distance p10 oldp10))
pt1 (polar pt (angle p14 oldp10) d2d)
)
 )
)
 	(setq en (subst (cons 13 p13)(assoc 13 en) en)
en (subst (cons 14 p14)(assoc 14 en) en)
en (subst (cons 10 p10)(assoc 10 en) en)
en (subst (cons 11 p11)(assoc 11 en) en)
lstd (cdr lstd)
)
 	(entmod en)
 	);for
(princ "\nChon cac DIM can sap xep")
(setq xpt xp ypt yp pt pt1)
);while
 (setvar "OSMODE" #OSMODE)
 (command "_.Undo" "en")
 (princ)
 )

 

Lưu ý: các đường DIM nghiêng có điểm dóng (dxf14) nằm trên đường ghi kích thước có nghĩ là không có đường dóng thì sẽ không đúng

lisp ở bài #1 để mình xem lại cách tính góc nghiêng cho chính xác hơn

à xl b vì m lại hiểu nhầm câu sắp xếp dim thật ra nó là lisp để các dim k bị lệnh nh nhưng sao lisp của b dài thế m dow được lisp họ viết ngắn lắm.b thử xem

http://www.cadviet.com/upfiles/3/111690_md.lsp

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
tien2005    97

@cad2080: 2 lisp này khác nhau Bạn ơi lisp của mình dời cả chân đường dóng và đường ghi kích thước nên các dim sau khi chạy lisp sẽ cách đều nhau và chiều dài đường cũng bằng nhau. Lisp do Bạn đưa lên chỉ dời đường ghi kích thước thôi nên các dim cũng không đều nhau

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
tien2005    97

Các Bạn dùng thử lisp này đã khắc phục được lổi ở bài #1 và các DIM không có đường dóng ở bài #5. Nếu chưa ổn thì các Bạn comment để mình khắc phục

(defun c:sd ( / lstd pt xpt ypt xp yp pt1 goc h_textdim dxf50 dxf70
  p10 p11 p13 p14 oldp10 oldp11 oldp13 oldp14)
 (setq #OSMODE (getvar "OSMODE"))
 (command "_.Undo" "be")
 (setvar "cmdecho" 0)
 (setvar "OSMODE" 0)
 (princ "\nChon cac DIM can sap xep")
 (while (setq lstd (ssget (list(cons 0 "DIMENSION");"AcDbAlignedDimension" "AcDbRotatedDimension"
(cons -4 "<OR")(cons 70 32)(cons 70 33)(cons 70 64)(cons 70 65)(cons 70 128)(cons 70 129)
(cons 70 96)(cons 70 97)(cons 70 160)(cons 70 161)(cons 70 192)(cons 70 193)(cons 70 224)(cons 70 225)(cons -4 "OR>")
;(cons -4 "<OR")(cons 50 0)(cons 50 pi)(cons 50 (/ pi 2))(cons 50 (* 1.5 pi))(cons -4 "OR>")
)
 	)
   	)
(setq lstd (vl-remove-if 'listp (mapcar 'cadr (ssnamex lstd))))
(or h_textdim (setq h_textdim (cdr (assoc 140 (tblsearch "DIMSTYLE" (cdr (assoc 3 (entget (car lstd)))))));chieu cao text dim
  	d1014 (* 3 h_textdim);c/dai duong dong
  	d2d (* 4 h_textdim);k/c giua 2 duong kich thuoc
  	pt (getpoint "\nChon vi tri moi cua chan duong giong kich thuoc")
  	xpt (car pt)
  	ypt (cadr pt)
  	xp xpt
  	yp ypt
  	pt1 pt
  	)
	)
(while lstd
 	(setq en (entget (car lstd))
	oldp10 (cdr(assoc 10 en))
	oldp11 (cdr(assoc 11 en))
	oldp13 (cdr(assoc 13 en))
	oldp14 (cdr(assoc 14 en))
	goc (angle oldp14 oldp13)
	dxf50 (cdr(assoc 50 en))
	dxf70 (rtos(cdr(assoc 70 en))2 0)
	)

 	(cond
((or
(and (wcmatch dxf70 "32,64,128,96,160,192,224")(= (rem dxf50 pi) 0.0))
(and (not(wcmatch dxf70 "32,64,128,96,160,192,224"))(= (rem goc pi) 0.0))
)

 (setq p13 (list (car oldp13) ypt (caddr oldp13)); DIM ngang
   	p14 (list (car oldp14) ypt (caddr oldp14))
   	yp (cadr (polar p14 (angle p14 oldp10) d2d))
   	)
 )
((or
(and (wcmatch dxf70 "32,64,128,96,160,192,224")(= (rem dxf50 (* pi 0.5)) 0.0))
(and (not(wcmatch dxf70 "32,64,128,96,160,192,224"))(= (rem goc (* pi 0.5)) 0.0))
)
 (setq p13 (list xpt(cadr oldp13) (caddr oldp13)); DIM dung
   	p14 (list xpt (cadr oldp14) (caddr oldp14))
   	xp (car (polar p14 (angle p14 oldp10) d2d))
   	)
 )

(t(setq p13 (inters (polar oldp13 (+ goc (* pi 0.5)) d1014) oldp13 pt (polar pt goc d1014) nil)
 p14 (inters (polar oldp14 (+ goc (* pi 0.5)) d1014) oldp14 pt (polar pt goc d1014) nil)
 pt1 (polar pt (angle p14 oldp10) d2d)
 )
 )
)
  (setq p10 (polar p14 (angle p14 oldp10) d1014)
  	p11 (polar oldp11 (angle oldp10 p14) (distance p10 oldp10))
  	en (subst (cons 13 p13)(assoc 13 en) en)
  	en (subst (cons 14 p14)(assoc 14 en) en)
  	en (subst (cons 10 p10)(assoc 10 en) en)
  	en (subst (cons 11 p11)(assoc 11 en) en)
  	lstd (cdr lstd)
  	)
 	(entmod en)
 	);while lstd
(princ "\nChon cac DIM can sap xep")
(setq xpt xp ypt yp pt pt1)
);while
 (setvar "OSMODE" #OSMODE)
 (command "_.Undo" "en")
 (princ)
 )

  • Vote tăng 2

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 Bạn dùng thử lisp này đã khắc phục được lổi ở bài #1 và các DIM không có đường dóng ở bài #5. Nếu chưa ổn thì các Bạn comment để mình khắc phục

(defun c:sd ( / lstd pt xpt ypt xp yp pt1 goc h_textdim dxf50 dxf70   p10 p11 p13 p14 oldp10 oldp11 oldp13 oldp14)  (setq #OSMODE (getvar "OSMODE"))  (command "_.Undo" "be")  (setvar "cmdecho" 0)  (setvar "OSMODE" 0)  (princ "\nChon cac DIM can sap xep")  (while (setq lstd (ssget (list(cons 0 "DIMENSION");"AcDbAlignedDimension" "AcDbRotatedDimension"	(cons -4 "<OR")(cons 70 32)(cons 70 33)(cons 70 64)(cons 70 65)(cons 70 128)(cons 70 129)	(cons 70 96)(cons 70 97)(cons 70 160)(cons 70 161)(cons 70 192)(cons 70 193)(cons 70 224)(cons 70 225)(cons -4 "OR>")	;(cons -4 "<OR")(cons 50 0)(cons 50 pi)(cons 50 (/ pi 2))(cons 50 (* 1.5 pi))(cons -4 "OR>")	)  	)    	)(setq lstd (vl-remove-if 'listp (mapcar 'cadr (ssnamex lstd))))(or h_textdim (setq h_textdim (cdr (assoc 140 (tblsearch "DIMSTYLE" (cdr (assoc 3 (entget (car lstd)))))));chieu cao text dim   	d1014 (* 3 h_textdim);c/dai duong dong   	d2d (* 4 h_textdim);k/c giua 2 duong kich thuoc   	pt (getpoint "\nChon vi tri moi cua chan duong giong kich thuoc")   	xpt (car pt)   	ypt (cadr pt)   	xp xpt   	yp ypt   	pt1 pt   	) 	)	(while lstd  	(setq en (entget (car lstd)) 	oldp10 (cdr(assoc 10 en)) 	oldp11 (cdr(assoc 11 en)) 	oldp13 (cdr(assoc 13 en)) 	oldp14 (cdr(assoc 14 en)) 	goc (angle oldp14 oldp13) 	dxf50 (cdr(assoc 50 en)) 	dxf70 (rtos(cdr(assoc 70 en))2 0) 	)       	(cond((or	(and (wcmatch dxf70 "32,64,128,96,160,192,224")(= (rem dxf50 pi) 0.0))	(and (not(wcmatch dxf70 "32,64,128,96,160,192,224"))(= (rem goc pi) 0.0))	)   (setq p13 (list (car oldp13) ypt (caddr oldp13)); DIM ngang    	p14 (list (car oldp14) ypt (caddr oldp14))    	yp (cadr (polar p14 (angle p14 oldp10) d2d))    	)  )((or	(and (wcmatch dxf70 "32,64,128,96,160,192,224")(= (rem dxf50 (* pi 0.5)) 0.0))	(and (not(wcmatch dxf70 "32,64,128,96,160,192,224"))(= (rem goc (* pi 0.5)) 0.0))	)  (setq p13 (list xpt(cadr oldp13) (caddr oldp13)); DIM dung    	p14 (list xpt (cadr oldp14) (caddr oldp14))    	xp (car (polar p14 (angle p14 oldp10) d2d))    	)  )(t(setq p13 (inters (polar oldp13 (+ goc (* pi 0.5)) d1014) oldp13 pt (polar pt goc d1014) nil)  p14 (inters (polar oldp14 (+ goc (* pi 0.5)) d1014) oldp14 pt (polar pt goc d1014) nil)  pt1 (polar pt (angle p14 oldp10) d2d)  )  ))   (setq p10 (polar p14 (angle p14 oldp10) d1014)   	p11 (polar oldp11 (angle oldp10 p14) (distance p10 oldp10))   	en (subst (cons 13 p13)(assoc 13 en) en)   	en (subst (cons 14 p14)(assoc 14 en) en)   	en (subst (cons 10 p10)(assoc 10 en) en)   	en (subst (cons 11 p11)(assoc 11 en) en)   	lstd (cdr lstd)   	)  	(entmod en)  	);while lstd	(princ "\nChon cac DIM can sap xep")	(setq xpt xp ypt yp pt pt1)	);while  (setvar "OSMODE" #OSMODE)  (command "_.Undo" "en")  (princ)  )

chào bạn. mình chưa sử dụng được lisp và khi dùng lisp của bạn thì tính năng bắt điểm bị bỏ hết vậy? và có thể chỉnh lại ko?

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  

×