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

Viết lisp theo yêu cầu [phần 2]

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

Thiep xin hỏi tiếp: 1 cung ellipse, là 1 đối tượng ELLIPSE hở. Làm sao tạo được 1 cung ellipse này khi biết các thông số: góc cung đầu; góc cung cuối, tâm ellipse, bán kính trục lớn ( R ), tỷ số r/R.

Xin các anh em 1 đoạn mã lisp để tạo cung ellipse này.

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ó nghĩa là mình muốn tìm cao độ của các điểm trên 1 polyline khi đã có cao độ hai điểm trên polyline này. và sau đó xuất ra 1 cái text luôn.

dwg: http://www.cadviet.com/upfiles/2/thu.dwg

Thank!

Bác Tuệ đã hiểu ý mình chưa vậy. bác tưởng tượng mình có một polyline. Có cao độ điểm đầu và điểm cuối, Giờ mình muốn tìm cao độ của các điểm nằm trên polyline này (nằm giữa hai điểm). Sau khi tìm được cao độ mình pick một điểm cạnh đó để ghi giá trị cao độ vào đấy.

Hy vọng lần này bác hiểu ý của mình!

Chúc mọi người cuối tuần vui vẽ!

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

Xin chào Diễn đàn! Hôm nay em muốn xin 2 lisp, có công dụng như sau:

1. Lisp gán giá trị của text này cho text kia, lisp này giống lệnh MA, nhưng chỉ thay đổi giá trị của text đích cho giống text nguồn mà không thay đổi các yếu tố khác như layer, màu sắc, kiểu text. Lisp này khác lisp ánh xạ giá trị text của anh gia_bach ở chỗ: chỉ cần thay đổi giá trị một lần, lần sau khi text nguồn thay đổi, text đích không cần thay đổi theo.

2. Lisp quay đối tượng: thao tác như sau:

+ Nhập lệnh.

+ Chọn tâm quay. (điểm A).

+ Chọn điểm quay. (điểm :bigsmile:.

Khi đó ta có thể quay đối tượng theo điểm quay B mà tâm là A. Đến vị trí cần thiết, enter để kết thúc lệ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
Xin chào Diễn đàn! Hôm nay em muốn xin 2 lisp, có công dụng như sau:

1. Lisp gán giá trị của text này cho text kia, lisp này giống lệnh MA, nhưng chỉ thay đổi giá trị của text đích cho giống text nguồn mà không thay đổi các yếu tố khác như layer, màu sắc, kiểu text. Lisp này khác lisp ánh xạ giá trị text của anh gia_bach ở chỗ: chỉ cần thay đổi giá trị một lần, lần sau khi text nguồn thay đổi, text đích không cần thay đổi theo.

2. Lisp quay đối tượng: thao tác như sau:

+ Nhập lệnh.

+ Chọn tâm quay. (điểm A).

+ Chọn điểm quay. (điểm B ).

Khi đó ta có thể quay đối tượng theo điểm quay B mà tâm là A. Đến vị trí cần thiết, enter để kết thúc lệnh.

1. svba có thể xem ở đây : Bài viết số 14 và bài viết số 17

2. Em có thể minh họa bằng file .dwg được không?

 

Bác Tuệ đã hiểu ý mình chưa vậy. bác tưởng tượng mình có một polyline. Có cao độ điểm đầu và điểm cuối, Giờ mình muốn tìm cao độ của các điểm nằm trên polyline này (nằm giữa hai điểm). Sau khi tìm được cao độ mình pick một điểm cạnh đó để ghi giá trị cao độ vào đấy.

Hy vọng lần này bác hiểu ý của mình!

Chúc mọi người cuối tuần vui vẽ!

Chào ut_cung. Bạn có thể nói rõ hơn về những con số nội suy ở giữa PLINE được tính như thế nào không? Biết được cách tính như thế nào thì khi viết Lisp mới đúng ý của bạn được

  • 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

Chào các bạn. Mình đang có 2 lisp: tính tổng 1 loạt text rồi ghi sang 1 text và lisp ánh xạ 1 text sang text khác để tự động cập nhật theo. Giờ mình cần 1 lisp để tính tổng 1 loạt text field và tổng tự động cập nhật theo (sau khi REGEN) sau mỗi thay đổi của 1 trong các text field. Các bạn giúp mình kết hợp 2 lisp này được không. Cảm ơn nhiều :bigsmile: .

 

Tính tổng:

;************************* TINH TONG ************************************
(defun C:+ (/ cmd i newe e ss sslen txt Tong)
 (setq cmd (getvar "cmdecho"))
 (setvar "cmdecho" 0)
 (command "Undo" "BEgin")
 (princ "Chu y dung lenh UN de dat so sau dau phay!")
 (setq Tong 0)
 (setq ss (ssget))
 (setq sslen (sslength ss))
 (while (> sslen 0)
   (setq e (entget (ssname ss (setq sslen (1- sslen)))))
   (if	(or
  (= (cdr (assoc 0 e)) "TEXT")
  (= (cdr (assoc 0 e)) "MTEXT")
  (= (cdr (assoc 0 e)) "DIMENSION")
)
     (progn
(setq tong (+ tong (distof (cdr (assoc 1 e)) 2)))
(entmod e)
     )
   )
 )
 (setq newe (car (entsel "\nTong:")))
 (setq newe (entget newe '("ACAD")))
 (redraw (cdr (assoc -1 newe)) 4)
 (if (or
(= (cdr (assoc 0 newe)) "TEXT")
(= (cdr (assoc 0 newe)) "MTEXT")
(= (cdr (assoc 0 newe)) "DIMENSION")
     )
   (progn
(setq txt (rtos tong 2))
       (setq newe (subst (cons 1 txt) (assoc 1 newe) newe))
(entmod newe)        

   )
 )
 (redraw (cdr (assoc -1 newe)) 1)
 (command "Undo" "End")
)

 

Ánh xạ text

(defun c:LinkT (/ ss_ent ent ss e cmd);Link Text
(if (> (atof (substr (getvar "ACADVER") 1 4)) 16.1) ;;;AutoCAD 2006 16.2
(progn
(vl-load-com)
(command "_.undo" "_begin")
(setq cmd (getvar "cmdecho"))
(setvar "cmdecho" 0)
(and (princ "\nChon Text goc : ")
(setq ss_ent (ssget "_:S:E" '((0 . "TEXT"))) )
(setq ent (vlax-ename->vla-object (ssname ss_ent 0)))
(princ "\nChon Text can Link gia tri tu Text goc : ")
(setq ss (ssget (list (cons 0 "TEXT")) ))
(foreach e (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss)))
(vla-put-TextString
(vlax-ename->vla-object e)
(strcat"%<\\AcObjProp Object(%<\\_ObjId "(vl-princ-to-string (vla-get-ObjectId ent)) ">%).TextString >%")
)
)
)
(setvar "cmdecho" cmd)
(command "_.undo" "_end")(princ)
)
(alert "\nChi chay tren Autocad 2006-2010")
)
)

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
Thiep xin hỏi tiếp: 1 cung ellipse, là 1 đối tượng ELLIPSE hở. Làm sao tạo được 1 cung ellipse này khi biết các thông số: góc cung đầu; góc cung cuối, tâm ellipse, bán kính trục lớn ( R ), tỷ số r/R.

Xin các anh em 1 đoạn mã lisp để tạo cung ellipse này.

Lisp vẽ cung ellipse. Lưu ý:

1. Cung bắt đầu từ Start Angle đến End Angle theo chiều ngược kim đồng hồ. Các giá trị góc từ 0 đến 360 độ (không nhập số âm)

2. Trục dài theo phương X. Nếu bạn đổi (cons 11 (list R 0 0)) thành (cons 11 (list 0 R 0)) thì trục dài sẽ theo phương Y

;;;--------------------------------------------------
(defun C:CE( / p R k a1 a2 pr1 pr2) ;;;Cung Ellipse
(setq
 p (getpoint "\nCenter:")
 R (getreal "\nMajor radius:")
 k (getreal "\nRadius ratio (r/R):")
 a1 (dtr (getreal "\nStart angle (degree):"))
 a2 (dtr (getreal "\nEnd angle (degree):"))
 pr1 (parael a1 k)
 pr2 (parael a2 k)
)
(entmake (list
 (cons 0  "ELLIPSE") (cons 100 "AcDbEntity") (cons 100  "AcDbEllipse")
 (cons 10 p) (cons 11 (list R 0 0)) (cons 210 (list 0 0 1))
 (cons 40 k) (cons 41 pr1) (cons 42 pr2)
))
(princ)
)
;;;--------------------------------------------------
(defun parael (a k) ;;;Calc parameter of ellipse
(setq para (atan (/ (tang a) k)))
(if (and (> a (* 0.5 pi)) (< a (* 1.5 pi))) (setq para (- para pi)))
para
)
;;;--------------------------------------------------
(defun dtr(x) (/ (*  x pi) 180) ) ;;;Change degree to radian
;;;--------------------------------------------------
(defun tang(x) (/ (sin x) (cos x)) ) ;;;Tang
;;;--------------------------------------------------

  • Vote tăng 4

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
1. svba có thể xem ở đây : Bài viết số 14 và bài viết số 17

2. Em có thể minh họa bằng file .dwg được không?

Cảm ơn anh Tue_NV!

1. Em đã thử cả 2 lisp nd.lsp của bác duy782006 và bác NguyenHoanh nhưng đều không sử dụng được. lisp của anh Duy sau khi "select object" xong không thấy có kết quả, còn lisp của anh Hoành thì sau khi gõ lệnh xong không thấy thực hiện lệnh. Anh check lại giùm em.

2. Bài toán của em có thể mô tả một cách đơn giản thế này:

Cho một đối tượng bất kỳ và 2 điểm A, B bất kỳ có thể thuộc hay không thuộc đối tượng. Làm thế nào để xoay đối tượng quanh điểm A với bán kính là AB?

(Em không up được file dwg lên do hệ thống upload của Diễn đàn bị lỗ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
*Tiện ích đổi màu của layer thuộc đối tượng chọn.

-Tên lệnh: DML

-Thao tác:

+Nhập lệnh DML

+Chọn 1 đối tượng thuộc layer muốn đổi màu.

+Chọn màu muốn thay

-Layer chứa đối tượng sẽ được sửa thành màu vừa chọn.

day!!!!!

 

 

ủa mình thử với cad07 nhưng ko thấy có lệnh này , phiên bản mấy mới có vậy bạ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
Sao không sử dụng lệnh của cad nhỉ?? :bigsmile:

Lệnh: LAYER

 

lệnh đó thì nói làm gì , lệnh đó phải chọn layer hơi lâu , muốn nhanh hơn 1 chút ấy 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

2. Bài toán của em có thể mô tả một cách đơn giản thế này:

Cho một đối tượng bất kỳ và 2 điểm A, B bất kỳ có thể thuộc hay không thuộc đối tượng. Làm thế nào để xoay đối tượng quanh điểm A với bán kính là AB?

(Em không up được file dwg lên do hệ thống upload của Diễn đàn bị lỗi).

 

@ Svba 1608:Bạn có thể tả kỹ hơn hoặc chụp ảnh màn hình. Điểm A và B có cùng nằm trong mặt phẳng ?

Có cần phải nhập giá trị bán kính không? Nếu tất cả trong đối tượng cùng trong Mp, sao bạn không dùng lệnh Rotate với một góc nào đấy?

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

1-Các bạn có biết cái lisp mà khi bên layout ta tạo khung macview theo 1 tỷ lệ 1/x thì :

-Text, dim (arrow size, text) đều theo 1 cỡ quy định.Mình tìm hoài mà không thấy nó ở mục nào.

2-Trong cad 2007 1 lần mình vào menuload load 1 chuong trình thiết kế cống sử dụng lisp thì các thanh menu toolbars mất đi, bây giờ muốn lấy lại mình vào lại menuload nhưng k thấy cái acad. nữa. Bạn nào biết tại sao 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
Mình đã nhiều lần gặp trường hợp như bạn trong công việc. đây là lisp mình tìm được trên diễn đàn này. mình đã sửa lại 1 chút để bạn có thể sử dụng được cả 4 phép tính. Nó có tác dụng cộng, hoặc trừ, hoặc nhân, hoặc chia tất cả các text số mà bạn chọn với một số mà bạn nhập vào.

lệnh là: cong; tru; nhan; chia.

(defun c:cong()
(setq i 0 s1 0)
(setq n (getreal "\nnhap so muon cong them: "))
 (prompt "\nchon cac so can sua ...")
(setq txt (ssget '((0 . "TEXT"))))
	(repeat (sslength txt)
	(setq txt_name (ssname txt i))
  	(setq txt_ent (entget txt_name))
	(setq cont (cdr(assoc 1 txt_ent)))
	(setq cont (atof cont))
	(setq s (+ cont n))	  
  (setq txt_ent  (subst (cons 1 (rtos s)) (assoc 1 txt_ent) txt_ent))
	(entmod txt_ent)
	(setq i (+ i 1))
);repeat
);defun	
;------------------------------------------------------
(defun c:tru()
(setq i 0 s1 0)
(setq n (getreal "\nnhap so tru: "))
 (prompt "\nchon cac so can sua ...")
(setq txt (ssget '((0 . "TEXT"))))
	(repeat (sslength txt)
	(setq txt_name (ssname txt i))
  	(setq txt_ent (entget txt_name))
	(setq cont (cdr(assoc 1 txt_ent)))
	(setq cont (atof cont))
	(setq s (- cont n))	  
  (setq txt_ent  (subst (cons 1 (rtos s)) (assoc 1 txt_ent) txt_ent))
	(entmod txt_ent)
	(setq i (+ i 1))
);repeat
);defun	
;------------------------------------------------------
(defun c:nhan()
(setq i 0 s1 0)
(setq n (getreal "\nnhap so muon nhan: "))
 (prompt "\nchon cac so can sua ...")
(setq txt (ssget '((0 . "TEXT"))))
	(repeat (sslength txt)
	(setq txt_name (ssname txt i))
  	(setq txt_ent (entget txt_name))
	(setq cont (cdr(assoc 1 txt_ent)))
	(setq cont (atof cont))
	(setq s (* cont n))	  
  (setq txt_ent  (subst (cons 1 (rtos s)) (assoc 1 txt_ent) txt_ent))
	(entmod txt_ent)
	(setq i (+ i 1))
);repeat
);defun	
;------------------------------------------------------
(defun c:chia()
(setq i 0 s1 0)
(setq n (getreal "\nnhap mau so: "))
 (prompt "\nchon cac so can sua ...")
(setq txt (ssget '((0 . "TEXT"))))
	(repeat (sslength txt)
	(setq txt_name (ssname txt i))
  	(setq txt_ent (entget txt_name))
	(setq cont (cdr(assoc 1 txt_ent)))
	(setq cont (atof cont))
	(setq s (/ cont n))	  
  (setq txt_ent  (subst (cons 1 (rtos s)) (assoc 1 txt_ent) txt_ent))
	(entmod txt_ent)
	(setq i (+ i 1))
);repeat
);defun	
;------------------------------------------------------

Chú ý là kết quả tính toán sẽ lấy số chữ số sau dấu phẩy theo Precision trong định dạng Units bản vẽ của bạn. Với text cao độ thường lấy 2 chữ số sau dấu phẩy. bạn nên thiết lập lại Precision trước khi chạy thực hiện lệnh.

Không biết sao mà mình sử dụng lisp này nó kông hiểu, dòng lệnh command vẩn chạy bình thường nhưng kô cho ra kết quả, nhờ bạn kiểm tra lại và chỉ giúp mình với. Thanks!

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

2. Lisp quay đối tượng: thao tác như sau:

+ Nhập lệnh.

+ Chọn tâm quay. (điểm A).

+ Chọn điểm quay. (điểm :tongue2:.

Khi đó ta có thể quay đối tượng theo điểm quay B mà tâm là A. Đến vị trí cần thiết, enter để kết thúc lệnh.

Hy vọng đúng ý bạn.

(defun c:qu (/ ss cen pt )
 (if (and
(setq ss (ssget))
(setq cen (getpoint "\nChon tam quay :"))
(setq pt (getpoint cen"\nDiem tham chieu :"))
)
   (command "rotate" ss "" cen "r" cen pt pause)
   )
 (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
Không biết sao mà mình sử dụng lisp này nó kông hiểu, dòng lệnh command vẩn chạy bình thường nhưng kô cho ra kết quả, nhờ bạn kiểm tra lại và chỉ giúp mình với. Thanks!

Mặc dù có nhiều điều phải bàn về Lisp này, nhưng các lệnh cong-tru-nhan-chia vẫn cho kết quả cuối cùng.

-> Lisp chạy tốt.

 

Bác Hoanh có cách nào mà bắt cái hàm getfiled nó tự động ghi luôn không bác

Giá trị trả về của hàm getfiled là một chuỗi tên file (nếu thành công).

bạn muốn tự động ghi luôn là ghi cái gì ?

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
ủa mình thử với cad07 nhưng ko thấy có lệnh này , phiên bản mấy mới có vậy bạn

Phiên bản mấy cũng có hết miễn là bạn load file lisp bên dưới của mình về và load lê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
Phiên bản mấy cũng có hết miễn là bạn load file lisp bên dưới của mình về và load lên!

 

Chào các bạn mình mới bít lênhj Copym trong Express tool nhưng nó chưa đáp ứng được nhu cầu của mình có bạn nào có thể sửa lại hộ mình với :

Lệnh gốc : copym > Select objects: > Base point: > Second point or[Repeat (last)/Divide/Measure/Array (dynamic)/Undo] : m >Select measure ending point>Select measure ending point:

Giờ mình muốn thay đổi lisp để tự đông tùy chọn Measure đế lisp thay đổi như sau

lenh moi : copym > Select objects: > Base point: >>Select measure ending point>Select measure ending point:

 

Mình cũng đã có lisp copy liên tục trên diễn đàn nhưng lisp do không có tuỳ chọn điểm cuối như copym, khi muốn undo lại thì phải undo lại nhiều lần, thỉnh thoảng nó lại copy sai vị trí.Mình cảm ơ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

Mong các bạn giúp giùm mình 1 lisp dùng như sau? Thí dụ trên bản vẽ có nhiều block nằm rải rác khắp nơi,có lisp nào khi ta chọn tất cả các block đó thì nó sẽ hiện toạ độ tâm của tất cả các block đó,tọa độ của block nào thì nằm kế block đó.Tọa độ tính từ trục toạ độ (0,0).Chân thành cảm ơ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
Mong các bạn giúp giùm mình 1 lisp dùng như sau? Thí dụ trên bản vẽ có nhiều block nằm rải rác khắp nơi,có lisp nào khi ta chọn tất cả các block đó thì nó sẽ hiện toạ độ tâm của tất cả các block đó,tọa độ của block nào thì nằm kế block đó.Tọa độ tính từ trục toạ độ (0,0).Chân thành cảm ơn.

Chào t031285

Tọa độ tính từ trục toạ độ (0,0). Cái này không có vấn đề gì.

Riêng từ nằm kế -> cho Tue_NV hỏi lại 1 chút nhé : Tính từ toạ độ 0,0 nằm kế có nghĩa là gì?

nằm kế bên trái toạ độ (0,0) hay nằm kế bên phải toạ độ (0,0)

nằm kế bên trên toạ độ (0,0) hay nằm kế bên dưới toạ độ (0,0).

 

Bạn sử dụng từ ngữ khó hiểu quá. Nếu mà làm hợp đồng mà sử dụng từ ngữ theo kiểu này thì toi, thiệt hại cho mình đấy bạn à. Tue_NV góp ý thẳng với bạn. Đừng giận mình 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
Chào t031285

Tọa độ tính từ trục toạ độ (0,0). Cái này không có vấn đề gì.

Riêng từ nằm kế -> cho Tue_NV hỏi lại 1 chút nhé : Tính từ toạ độ 0,0 nằm kế có nghĩa là gì?

nằm kế bên trái toạ độ (0,0) hay nằm kế bên phải toạ độ (0,0)

nằm kế bên trên toạ độ (0,0) hay nằm kế bên dưới toạ độ (0,0).

 

Bạn sử dụng từ ngữ khó hiểu quá. Nếu mà làm hợp đồng mà sử dụng từ ngữ theo kiểu này thì toi, thiệt hại cho mình đấy bạn à. Tue_NV góp ý thẳng với bạn. Đừng giận mình nhé.

ý mình là như vầy giả sử mình có 5 block,thí dụ bock 5 có toạ độ là (5,5) thì khi dùng lisp chọn block 5 thì nó sẽ hiện (5,5) bên cạnh block 5 bên trái hay phải,trên dưới đều được.Chân thành cảm ơn bạn trướ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
ý mình là như vầy giả sử mình có 5 block,thí dụ bock 5 có toạ độ là (5,5) thì khi dùng lisp chọn block 5 thì nó sẽ hiện (5,5) bên cạnh block 5 bên trái hay phải,trên dưới đều được.Chân thành cảm ơn bạn trước.

Bạn thử cái này xem thế nào? Có gì chưa được thì Tue_NV sẽ chỉnh lại :

 

(defun c:tdb(/ ent cao tam ang)

(setq ent (car(entsel"\n Pick chon Block :")))

(setq cao (getdist "\n Nhap chieu cao Text :"))

(setq tam (cdr(assoc 10 (entget ent))))

(setq ang (cdr(assoc 50 (entget ent))))

(wtxt (strcat "(" (rtos (car tam) 2 0) "," (rtos (cadr tam) 2 0) ")")

(getpoint "\n Diem dat Text :") ang cao)

 

)

;

(defun wtxt (txt p ang h / sty)

(setq sty (getvar "textstyle"))

(entmake (list (cons 0 "TEXT") (cons 7 sty) (cons 1 txt) (cons 10 p) (cons 11 p)

(cons 72 0) (cons 73 1) (cons 50 ang) (cons 40 h) (cons 41 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
Bạn thử cái này xem thế nào? Có gì chưa được thì Tue_NV sẽ chỉnh lại :

 

(defun c:tdb(/ ent cao tam ang)

(setq ent (car(entsel"\n Pick chon Block :")))

(setq cao (getdist "\n Nhap chieu cao Text :"))

(setq tam (cdr(assoc 10 (entget ent))))

(setq ang (cdr(assoc 50 (entget ent))))

(wtxt (strcat "(" (rtos (car tam) 2 0) "," (rtos (cadr tam) 2 0) ")")

(getpoint "\n Diem dat Text :") ang cao)

 

)

;

(defun wtxt (txt p ang h / sty)

(setq sty (getvar "textstyle"))

(entmake (list (cons 0 "TEXT") (cons 7 sty) (cons 1 txt) (cons 10 p) (cons 11 p)

(cons 72 0) (cons 73 1) (cons 50 ang) (cons 40 h) (cons 41 1))

)

)

Cảm ơn bạn đã nhiệt tình giúp đỡ,mình muốn nhờ bạn sửa lại làm sao nó có thể ghi được toạ độ của bất kỳ hình nào không riêng gì block và khi chọn đối tượng thì có thể chọn được nhiều đối tượng và ghi ra toạ độ của tất cả các đối tượng đó cùng 1 lú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

trước đây Bác Hòanh có viết một lisp " di chuyển dấu chấm thập phân text đến trùng với point tương ứng". Nay nhờ các bạn viết lisp di chuyển các text sao cho điểm chèn text trùng các point tương ứng. Cụ thể như sau: bản vẽ có nhiều text, mỗi text có một point tương ứng nằm gần text, vị trí text so với point hơi tự do một chút, nghĩa là vị trí text so với point không phải lúc nào cũng bằng nhau. Yêu cầu chương trình: sau khi gõ lệnh, chọn tất cả text và point một lúc, enter, lệnh thực hiện.

Cám ơn trướ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
Cảm ơn bạn đã nhiệt tình giúp đỡ,mình muốn nhờ bạn sửa lại làm sao nó có thể ghi được toạ độ của bất kỳ hình nào không riêng gì block và khi chọn đối tượng thì có thể chọn được nhiều đối tượng và ghi ra toạ độ của tất cả các đối tượng đó cùng 1 lúc.

Chào bạn t031285,

Để có thể giúp bạn, bạn hãy cho biết định nghĩa cái tâm của đối tượng là gì đã bạn ạ. Có rất nhiều loại đối tượng trên bản vẽ, nào là đoạn thẳng, cung tròn, elip, block, text, ......... Mỗi loại đối tượng cần phải có cái định nghĩa về tâm của nó mới được bạn ạ.

Mong bạn sớm trả lời yêu cầu này thì mọi người mới giúp bạn đượ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
Chào bạn t031285,

Để có thể giúp bạn, bạn hãy cho biết định nghĩa cái tâm của đối tượng là gì đã bạn ạ. Có rất nhiều loại đối tượng trên bản vẽ, nào là đoạn thẳng, cung tròn, elip, block, text, ......... Mỗi loại đối tượng cần phải có cái định nghĩa về tâm của nó mới được bạn ạ.

Mong bạn sớm trả lời yêu cầu này thì mọi người mới giúp bạn được.

Bạn nói đúng,có rất nhiều đối tượng trên hình vẽ,vậy mình chỉ cần các đối tượng là hình tròn,hình vuông,hình chữ nhật,và các point.Nếu có thể là block của các hình này nếu bác và bác tue có thể giúp được.Cái quan trọng là làm sao khi chọn tất cả các đối tượng trên thì nó sẽ xuất toạ độ của các điểm đã chọn.Thanks.

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
Khách
Chủ đề này bây giờ đã bị đóng lại để trả lời thêm.

×