Chuyển đến nội dung
Diễn đàn CADViet
doanvinh_hai@yahoo.com

Cần nhờ viết list về kích thước

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

Em là lính mới muôn nhờ mọi người 1 việc:

em muôn có 1 list :

giả sử ta có rất nhiều đường kích thước sắp xếp lộn xộn. em muốn có 1 list sao cho chi cân thực hiên lệnh là tất cả sắp xếp đều cà hợp lí nhất.

- ta co tập hợp các đường tròn đường kính khác nhau. em cần một lệnh sao cho chỉ cần chọn vào điiêm và đường tron là có thông số về toạ độ và đường kính trong bảng

Xin 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
Em là lính mới muôn nhờ mọi người 1 việc:

em muôn có 1 list :

giả sử ta có rất nhiều đường kích thước sắp xếp lộn xộn. em muốn có 1 list sao cho chi cân thực hiên lệnh là tất cả sắp xếp đều cà hợp lí nhất.

- ta co tập hợp các đường tròn đường kính khác nhau. em cần một lệnh sao cho chỉ cần chọn vào điiêm và đường tron là có thông số về toạ độ và đường kính trong bảng

Xin Cảm ơn

-Bạn hỏi ý thứ nhất mình vẫn chưa rõ cho lắm??????????????

-Còn ý thứ 2 bạn ko cần dùng đến Lisp vẫn có thể làm được.Bạn dùng lệnh Li(List) trong Cad.Ví dụ khi dùng lệnh Li,chọn 1 Circle --> sẽ ra 1 bảng hiện lên các thông tin về Circle đó như:toạ độ tâm,bán kính,diện tích...

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
Em là lính mới muôn nhờ mọi người 1 việc:

em muôn có 1 list :

giả sử ta có rất nhiều đường kích thước sắp xếp lộn xộn. em muốn có 1 list sao cho chi cân thực hiên lệnh là tất cả sắp xếp đều cà hợp lí nhất.

- ta co tập hợp các đường tròn đường kính khác nhau. em cần một lệnh sao cho chỉ cần chọn vào điiêm và đường tron là có thông số về toạ độ và đường kính trong bảng

Xin Cảm ơn

Ý thứ nhất : Hãy tìm Lisp sapdim của bác Nguyễn Hoành đã có trên diễn đàn rồi đấy.

Ý thứ hai : Mình hiểu câu hỏi của bạn. Nhưng sắp xếp trong bảng nào? Cấu tạo của bảng ra sao thì mù tịt :undecided:

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
- ta co tập hợp các đường tròn đường kính khác nhau. em cần một lệnh sao cho chỉ cần chọn vào điiêm và đường tron là có thông số về toạ độ và đường kính trong bảng

Xin Cảm ơn

 

Khó hiểu câu của bạn song bạn có thể dùng lệnh LI để biết được toạ độ tâm, bán kính, chu vi, diện tích của đường tron.

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
Em là lính mới muôn nhờ mọi người 1 việc:

em muôn có 1 list :

giả sử ta có rất nhiều đường kích thước sắp xếp lộn xộn. em muốn có 1 list sao cho chi cân thực hiên lệnh là tất cả sắp xếp đều cà hợp lí nhất.

- ta co tập hợp các đường tròn đường kính khác nhau. em cần một lệnh sao cho chỉ cần chọn vào điiêm và đường tron là có thông số về toạ độ và đường kính trong bảng

Xin Cảm ơn

Chào bạn doanvinh_hai,

Trước hết bạn nên tìm hiểu về nội dung cần hỏi trên diễn đàn trước khi post câu hỏi nhé. Bởi vì có thể đã có những câu hỏi tương tự và đã có bài trả lời cụ thể về nó. Bạn chỉ cần lấy về là xong . Cũng có thể bài trả lời chưa hoàn toàn đúng ý bạn thì bạn chỉ cần hỏi thêm những ý cần hỏi. Và mình xin có ý kiến về cái nội dung bạn muố hỏi như sau:

1/- Yêu cầu của bạn quá chung chung và có lẽ sẽ không ai hiểu nổi cái sự mà bạn cho là "hợp lý "ấy. Việc hợp lý của việc ghi kích thước trên bản vẽ phụ thuộc rất nhiều vào cái ý thức chủ quan của người thiết kế. Do vậy bạn nên tham khảo cái lisp sắp xếp dim của bác Hoành đã post trên diễn đàn này và nếu có thể, hãy tự mình cải tiến cái lisp đó cho phù hợp với cái sự hợp lý của bạn. Bằng không bạn hãy nói rõ nó chưa hợp lý ở chỗ nào để mọi người còn biết đường mò ra cái mà bạn muốn.

2/- Về cái tọa độ của bạn muốn là tọa độ gì nhỉ? tọa độ điểm chọn hay tọa độ tâm vòng tròn? Và nhập vào bảng theo ý bạn là bảng như thế nào, ở đâu nhỉ? Nếu có thể được bạn hãy post cái bản vẽ đã có của bạn trước khi có lisp và bản vẽ cái kết quả mà bạn muốn có lên để anh em dễ hình dung bạn nhé.

3/- Bạn nên suy nghĩ và lựa chọn một cái kết quả bạn muốn sao cho hoàn hảo nhất theo ý bạn rồi hãy post nhé bởi vì khi mọi người đã viết rồi bạn lại bổ sung vài cái yêu cầu nữa là sẽ làm khó cho người muốn giúp bạn đấy.

Chúc bạn vui và thành cô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
Chào bạn doanvinh_hai,

Trước hết bạn nên tìm hiểu về nội dung cần hỏi trên diễn đàn trước khi post câu hỏi nhé. Bởi vì có thể đã có những câu hỏi tương tự và đã có bài trả lời cụ thể về nó. Bạn chỉ cần lấy về là xong . Cũng có thể bài trả lời chưa hoàn toàn đúng ý bạn thì bạn chỉ cần hỏi thêm những ý cần hỏi. Và mình xin có ý kiến về cái nội dung bạn muố hỏi như sau:

1/- Yêu cầu của bạn quá chung chung và có lẽ sẽ không ai hiểu nổi cái sự mà bạn cho là "hợp lý "ấy. Việc hợp lý của việc ghi kích thước trên bản vẽ phụ thuộc rất nhiều vào cái ý thức chủ quan của người thiết kế. Do vậy bạn nên tham khảo cái lisp sắp xếp dim của bác Hoành đã post trên diễn đàn này và nếu có thể, hãy tự mình cải tiến cái lisp đó cho phù hợp với cái sự hợp lý của bạn. Bằng không bạn hãy nói rõ nó chưa hợp lý ở chỗ nào để mọi người còn biết đường mò ra cái mà bạn muốn.

2/- Về cái tọa độ của bạn muốn là tọa độ gì nhỉ? tọa độ điểm chọn hay tọa độ tâm vòng tròn? Và nhập vào bảng theo ý bạn là bảng như thế nào, ở đâu nhỉ? Nếu có thể được bạn hãy post cái bản vẽ đã có của bạn trước khi có lisp và bản vẽ cái kết quả mà bạn muốn có lên để anh em dễ hình dung bạn nhé.

3/- Bạn nên suy nghĩ và lựa chọn một cái kết quả bạn muốn sao cho hoàn hảo nhất theo ý bạn rồi hãy post nhé bởi vì khi mọi người đã viết rồi bạn lại bổ sung vài cái yêu cầu nữa là sẽ làm khó cho người muốn giúp bạn đấy.

Chúc bạn vui và thành công.

http://www.cadviet.com/upfiles/yeu_cau_1.dwg

Cám ơn các bác đã quan tâm cũng như góp ý trân thành.

Có lẽ em chưa tìm hiêu sâu nên hỏi có lẽ rõ ràng. em xin gửi các bác bản vẽ.

-Về list sap dim em se tham khảo thêm vi em chưa tim hiểu em xin các bác thông cảm

-Còn về list toaaj độ điểm em xin trình bày: em vẽ bản vẽ thường có rất nhiều lỗ mà cần điền các thông tin về lỗ như: toạ độ, bán kính, diện tích. chu vi.. Vì vậy em mong muốn 1 công cụ giúp giảm bớt công việc này. ( tất cả các lỗ chứ không phải 1 lỗ ) như bản vẽ. vậy mong các bác giúp đỡ. EM đang trong thời kì mông muôi của thế giới cad. mong các bác chỉ giáo. Xin cảm ơn các bác 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
http://www.cadviet.com/upfiles/yeu_cau_1.dwg

Cám ơn các bác đã quan tâm cũng như góp ý trân thành.

Có lẽ em chưa tìm hiêu sâu nên hỏi có lẽ rõ ràng. em xin gửi các bác bản vẽ.

-Về list sap dim em se tham khảo thêm vi em chưa tim hiểu em xin các bác thông cảm

-Còn về list toaaj độ điểm em xin trình bày: em vẽ bản vẽ thường có rất nhiều lỗ mà cần điền các thông tin về lỗ như: toạ độ, bán kính, diện tích. chu vi.. Vì vậy em mong muốn 1 công cụ giúp giảm bớt công việc này. ( tất cả các lỗ chứ không phải 1 lỗ ) như bản vẽ. vậy mong các bác giúp đỡ. EM đang trong thời kì mông muôi của thế giới cad. mong các bác chỉ giáo. Xin cảm ơn các bác nhiêu.

Bạn hãy upload một file bản vẽ và hãy mô tả thật chi tiết cái mà bạn muốn ra xem nào.

Mình hiểu ý của bạn chứ. Nhưng mà bạn cần điện thông tin về lỗ như: toạ độ, bán kính, diện tích. chu vi.. và bạn cần điền ra sao? ở vị trí nào? Hãy mô tả rõ ràng và đầy đủ cái mà bạn muốn. Mọi người sẽ giúp 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
http://www.cadviet.com/upfiles/yeu_cau_1.dwg

Cám ơn các bác đã quan tâm cũng như góp ý trân thành.

Có lẽ em chưa tìm hiêu sâu nên hỏi có lẽ rõ ràng. em xin gửi các bác bản vẽ.

-Về list sap dim em se tham khảo thêm vi em chưa tim hiểu em xin các bác thông cảm

-Còn về list toaaj độ điểm em xin trình bày: em vẽ bản vẽ thường có rất nhiều lỗ mà cần điền các thông tin về lỗ như: toạ độ, bán kính, diện tích. chu vi.. Vì vậy em mong muốn 1 công cụ giúp giảm bớt công việc này. ( tất cả các lỗ chứ không phải 1 lỗ ) như bản vẽ. vậy mong các bác giúp đỡ. EM đang trong thời kì mông muôi của thế giới cad. mong các bác chỉ giáo. Xin cảm ơn các bác nhiêu.

Cái hàm (ssget) thiệt khó chơi. Nó lẫn lộn không theo trật tự nào cả.

Lisp mình viết cho bạn rồi nè. Và để Lisp chạy đúng bạn hãy đánh vào cột đường tròn trong file mà bạn gửi các kí hiệu A B C D E F. Khi chạy Lisp chọn các hình tròn theo thứ tự A B C D E F , Lisp sẽ tính tọa độ tâm hình tròn (X , Y) ; đường kính, chu vi, diện tích. mà bạn phải nói rõ là bạn tính theo đơn vị gì chứ? Lisp tính toàn bộ theo đơn vị mm đấy.

Cột 1 : Tọa độ tâm X

Cột 2 : Tọa độ tâm Y

Cột 3 : Đường kính

Cột 4 : Chu vi

Cột 5 : Diện tích

(defun c:lo()
(prompt "\n Ban chon cac lo :")
(setq ss (ssget '((0 . "circle"))))
(setq n (sslength ss)
i 0)
(setq po (getpoint "\n Chon diem ghi ket qua :"))
(setq cao (getreal "\n Chieu cao chu (mm) :"))
(setvar "dimzin" 0)
(while ((setq sn (entget(ssname ss i)))
(setq x (cadr(assoc 10 sn))
y (car(cddr(assoc 10 sn)))
R (cdr(assoc 40 sn))
D (* R 2)
Cvi (* pi D)
Dtich (* pi R R)
)
(Command "Style" "Standard" "TIMES.TTF" "0" "1" "0" "n" "n")
(command "text" "j" "BR" po cao "0" (rtos X 2 0))
(command "text" "j" "BR" (list(+ (car po) (* cao 4)) (cadr po)) cao "0" (rtos Y 2 0))
(command "text" "j" "BR" (list(+ (car po) (* cao 10)) (cadr po)) cao "0" (rtos D 2 2))
(command "text" "j" "BR" (list(+ (car po) (* cao 16)) (cadr po)) cao "0" (rtos Cvi 2 2))
(command "text" "j" "BR" (list(+ (car po) (* cao 24)) (cadr po)) cao "0" (rtos Dtich 2 2))
(command "Line" (list(+ (car po) (* cao 0.5)) (cadr po)) (list(+ (car po) (* cao 0.5)) (+ (cadr po) (* cao 2))) "")
(command "Line" (list(+ (car po) (* cao 4.5)) (cadr po)) (list(+ (car po) (* cao 4.5)) (+ (cadr po) (* cao 2))) "")
(command "Line" (list(+ (car po) (* cao 10.5)) (cadr po)) (list(+ (car po) (* cao 10.5)) (+ (cadr po) (* cao 2))) "")
(command "Line" (list(+ (car po) (* cao 16.5)) (cadr po)) (list(+ (car po) (* cao 16.5)) (+ (cadr po) (* cao 2))) "")
(command "Line" (list(+ (car po) (* cao 24.5)) (cadr po)) (list(+ (car po) (* cao 24.5)) (+ (cadr po) (* cao 2))) "")
(setq po (list(car po) (- (cadr po) (* cao 2))))
(setq i (+ i 1))
)
(princ)
)

Hy vọng Lisp chạy đúng ý bạn

Chúc thành công :undecided:

  • 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ám ơn sự nhieet tình của bác Tuệ

em đã gửi file theo đường dẫn câu hỏi bổ xung. bac xem lai hộ em nhé.

Cảm ơn sự quan tâm của bác.

Chào bạn Doanvinh_hai,

Bạn đã chạy thử cái lisp của bác Tue_nv chưa nhỉ?

Mình thấy lisp của bác ấy chạy rất tốt, nhưng chưa chắc đã làm bạn hài lòng. Lỗi là ở bạn thôi vì bạn không nêu rõ cái yêu cầu của bạn mà.

Cái lisp của bác Tue_NV sẽ cho ra các tọa độ tuyệt đối của tâm vòng tròn, điều này dẫn tới cùng một hình vẽ chi tiết nhưng nếu bạn thay đổi gốc tọa độ thì lisp sẽ cho ra kết quả khác ngay. Và như vậy khi bạn đưa cái bảng kích thước này cho thợ gia công thì họ sẽ cực kỳ bối rối vì phải đi tìm cái gốc tọa độ nó nằm ở chỗ nào bạn ạ.

Trên các bản vẽ chi tiết, thường thường sử dụng các kích thước tương đối sẽ thuận lợi hơn cho người đọc bản vẽ chi tiết đó. Muốn vậy bạn phải chọn một điểm chuẩn và lập chuỗi kích thước so với chuẩn đó. Đúng không bạn?

Nếu đúng như vậy, bạn vẫn hoàn toàn có thể sử dụng cái lisp này với việc bổ sung thêm việc chọn điểm chuẩn và thay thế các tọa độ x, y trong lisp bằng việc lấy tọa độ tương đối của tâm các vòng tròn so với điểm chuẩn đã chọn. Việc này nếu như bạn không thể giải quyết được thì hãy post lên, mình sẽ sửa giùm bạn.

 

Một điều nữa là bạn đã không yêu cầu về độ chính xác của các giá trị kích thước nên bác Tue_NV đã không thể hiện nó trong lisp mà điều này có thể không phù hợp với yêu cầu của bạn. (Bạn hãy kiểm tra chuỗi kích thước sẽ thấy có sự sai biệt giữa giá trị thực và giá trị trong bảng)

 

Bạn nên rút kinh nghiệm khi post yêu cầu của mình, càng cụ thể càng tốt vì như vậy người viết lisp sẽ không phải viết đi viết lại một vấn đề, đồng thời có thể đáp ứng ngay cho công việc của bạn. Nhất là trong điều kiện bạn chưa rành về lisp để có thể tự điều chỉnh các lisp có sẵn cho phù hợp với yêu cầu của mình.

 

Chúc bạn thành cô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
Chào bạn Doanvinh_hai,

Bạn đã chạy thử cái lisp của bác Tue_nv chưa nhỉ?

Mình thấy lisp của bác ấy chạy rất tốt, nhưng chưa chắc đã làm bạn hài lòng. Lỗi là ở bạn thôi vì bạn không nêu rõ cái yêu cầu của bạn mà.

Cái lisp của bác Tue_NV sẽ cho ra các tọa độ tuyệt đối của tâm vòng tròn, điều này dẫn tới cùng một hình vẽ chi tiết nhưng nếu bạn thay đổi gốc tọa độ thì lisp sẽ cho ra kết quả khác ngay. Và như vậy khi bạn đưa cái bảng kích thước này cho thợ gia công thì họ sẽ cực kỳ bối rối vì phải đi tìm cái gốc tọa độ nó nằm ở chỗ nào bạn ạ.

Trên các bản vẽ chi tiết, thường thường sử dụng các kích thước tương đối sẽ thuận lợi hơn cho người đọc bản vẽ chi tiết đó. Muốn vậy bạn phải chọn một điểm chuẩn và lập chuỗi kích thước so với chuẩn đó. Đúng không bạn?

Nếu đúng như vậy, bạn vẫn hoàn toàn có thể sử dụng cái lisp này với việc bổ sung thêm việc chọn điểm chuẩn và thay thế các tọa độ x, y trong lisp bằng việc lấy tọa độ tương đối của tâm các vòng tròn so với điểm chuẩn đã chọn. Việc này nếu như bạn không thể giải quyết được thì hãy post lên, mình sẽ sửa giùm bạn.

 

Một điều nữa là bạn đã không yêu cầu về độ chính xác của các giá trị kích thước nên bác Tue_NV đã không thể hiện nó trong lisp mà điều này có thể không phù hợp với yêu cầu của bạn. (Bạn hãy kiểm tra chuỗi kích thước sẽ thấy có sự sai biệt giữa giá trị thực và giá trị trong bảng)

 

Bạn nên rút kinh nghiệm khi post yêu cầu của mình, càng cụ thể càng tốt vì như vậy người viết lisp sẽ không phải viết đi viết lại một vấn đề, đồng thời có thể đáp ứng ngay cho công việc của bạn. Nhất là trong điều kiện bạn chưa rành về lisp để có thể tự điều chỉnh các lisp có sẵn cho phù hợp với yêu cầu của mình.

 

Chúc bạn thành công.

Đúng như lời của bác PhamThanhBinh nói. Có lẽ rằng bạn Doanvinh_hai đã chưa nói hết ý của bạn.

điểm chuẩn (tức là cái gốc toạ độ 0,0,0 của toạ độ tương đối) đó nằm ở đâu?

Mình đã bổ sung vào đoạn Lisp này thêm một câu : Chon diem moc chuan 0,0,0 cua toa do tuong doi

Tức là bạn xác định cái điểm chuẩn 0,0,0 của toạ độ tương đối để tâm mọi cái đường tròn đều xác định dựa trên điểm chuẩn này mà xác định.

Và mình đã dùng thêm lệnh Donut để vẽ vào ngay chính cái gốc toạ độ tươpng đối để bạn dễ xác định.

Còn nếu bạn muốn vẽ với toạ độ tuyệt đối thì chỉ cần nhập 0,0,0 vào dòng này Chon diem moc chuan 0,0,0 cua toa do tuong doi

thì Lisp sẽ chạy ra kết quả cho bạn và tâm mọi đường tròn sẽ xác định theo toạ độ tuyệt đối

(defun c:lo()
(prompt "\n Ban chon cac lo :")
(setq ss (ssget '((0 . "circle"))))
(setq n (sslength ss)
i 0)
(Setq moc (getpoint "\n Chon diem moc chuan 0,0,0 cua toa do tuong doi :"))
(setq po (getpoint "\n Chon diem ghi ket qua :"))
(setq cao (getreal "\n Chieu cao chu (mm) :"))
(Command "donut" "0" (/ cao 4) moc "")
(setvar "dimzin" 0)
(while ((setq sn (entget(ssname ss i)))
(setq x (- (cadr(assoc 10 sn)) (car moc))
y (- (car(cddr(assoc 10 sn))) (cadr moc))
R (cdr(assoc 40 sn))
D (* R 2)
Cvi (* pi D)
Dtich (* pi R R)
)
(Command "Style" "Standard" "TIMES.TTF" "0" "1" "0" "n" "n")
(command "text" "j" "BR" po cao "0" (rtos X 2 0))
(command "text" "j" "BR" (list(+ (car po) (* cao 4)) (cadr po)) cao "0" (rtos Y 2 0))
(command "text" "j" "BR" (list(+ (car po) (* cao 10)) (cadr po)) cao "0" (rtos D 2 2))
(command "text" "j" "BR" (list(+ (car po) (* cao 16)) (cadr po)) cao "0" (rtos Cvi 2 2))
(command "text" "j" "BR" (list(+ (car po) (* cao 24)) (cadr po)) cao "0" (rtos Dtich 2 2))


(setq po (list(car po) (- (cadr po) (* cao 3))))

(setq i (+ i 1))
)
(princ)
)

Trên tinh thần giúp cho người cũng chính là giúp cho mình để tự hoàn thiện bản thân. Bạn Doanvinh_hai hãy nêu ra yêu cầu của bạn thêm 1 lần nữa. Và hãy nêu thật rõ ràng, chi tiết, mạch lạc. Mình sẽ hoàn thiện đoạn Lisp 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ác bác ơi!

Em chào các bác.

 

Em thấy cái lisp này còn một chút vấn đề.

thứ nhất là nó không có nhắc đến phần thập phân sau dấu phảy bao nhiêu giá trị

thứ 2 là các chữ toạ độ, diện tích, ... cách nhau xa quá, em góp ý thế này các bác có thể phân biệt bằng dây phảy(,)

thứ 3 là khi chọn nhiều đường chòn quá thì lại chỉ có một điểm ghi toạ độ đó nên lại phải cọn riêng để toạ độ đường nào vào đường đó

thứ 4 là nó ghi đó, khong chỉ rõ là toạ độ hay dtích của vị trí hay hình nào(có lẽ nên thêm đường le vào).

 

Nhân tiện đây em nhờ các bác sửa cho 1 cái lisp nó chưa chạy đc bác ạ, mà em chỉ muốn ghi toạ độ thôi bá ạ và có thể dùng đường LE hoặc line để chỉ rõ toạ độ đó, em up bản vẽ đã hoàn thành mong các bác giúp cho.

 

http://www.cadviet.com/upfiles/5013522.dwg

(DEFUN EXCUTE(/ n P TX TY)
 (setq str (strcat "\nPhan so le muon lay [" (itoa sl) "] (press Enter or Space for get default): "))
 (setq n (getint str))
 (if (/= n Nil)
   (setq sl n)    
 )  
 (While T
   (setq P Null)
   (princ "\nPick a point or press ESC for exit:")
   (setq P (getpoint))
   (if (/= P Nil)
     (progn
   (setq TX (rtos (Car P) 2 sl))
   (setq TY (rtos (Cadr P) 2 sl))
   (command "-INSERT" "TD" P "1" "1" "0" TX TY)
     )      
   )  
 );End While  
)
(DEFUN INIT()
 (if (= sl Nil)
   (setq sl 2)
 )  
)
(DEFUN C:TOADO()
 (INIT)
 (EXCUTE)
)

 

Em xin 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

Em đã kiểm tra lại đoạn lisp mới rồi. thực ra cũng chưa đung ý muốn của em lắm. Em sẽ viết lại đầy đủ yêu cầu và từng bước thực hiện lệnh. Em sẽ gửi yêu cầu đầy đủ nhất. rất cám ơn các bác đã giúp đỡ. Gạp lại các bác sau

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ác ơi!

Em chào các bác.

 

Em thấy cái lisp này còn một chút vấn đề.

thứ nhất là nó không có nhắc đến phần thập phân sau dấu phảy bao nhiêu giá trị

thứ 2 là các chữ toạ độ, diện tích, ... cách nhau xa quá, em góp ý thế này các bác có thể phân biệt bằng dây phảy(,)

thứ 3 là khi chọn nhiều đường chòn quá thì lại chỉ có một điểm ghi toạ độ đó nên lại phải cọn riêng để toạ độ đường nào vào đường đó

thứ 4 là nó ghi đó, khong chỉ rõ là toạ độ hay dtích của vị trí hay hình nào(có lẽ nên thêm đường le vào).

 

Em xin cảm ơn.

Chào bạn.

Ý thứ nhất là đã có nhắc đến phần thập phân trong Lisp (ở hàm (rtos X 2 0) trong đó 0 là số số lẻ thập phân cần lấy bạn ạ. Vì số lẻ ở tọa độ là 0, số số lẻ của chu vi, diện tích là 2 nên sử dụng hàm rtos để lấy số lẻ thập phân bạn à.

thứ 2, thứ 3 , thứ 4 : có lẻ bạn chưa đọc bản vẽ của bạn doanvinh_hai@yahoo.com. Bản vẽ của bạn ấy yêu cầu lập thành bảng.

 

Còn bản vẽ của bạn mình đã xem qua. Và bạn hãy rút kinh nghiệm hãy trình bày thật rõ ràng, chi tiết điều mà bạn muốn. Có chổ đọc không hiểu như hình tròn thứ 4 từ trái qua phải có ghi 6.02[152.91] đứng và -0.45[-11.43] ngang là không hiể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
Chào bạn.

Ý thứ nhất là đã có nhắc đến phần thập phân trong Lisp (ở hàm (rtos X 2 0) trong đó 0 là số số lẻ thập phân cần lấy bạn ạ. Vì số lẻ ở tọa độ là 0, số số lẻ của chu vi, diện tích là 2 nên sử dụng hàm rtos để lấy số lẻ thập phân bạn à.

thứ 2, thứ 3 , thứ 4 : có lẻ bạn chưa đọc bản vẽ của bạn doanvinh_hai@yahoo.com. Bản vẽ của bạn ấy yêu cầu lập thành bảng.

 

Còn bản vẽ của bạn mình đã xem qua. Và bạn hãy rút kinh nghiệm hãy trình bày thật rõ ràng, chi tiết điều mà bạn muốn. Có chổ đọc không hiểu như hình tròn thứ 4 từ trái qua phải có ghi 6.02[152.91] đứng và -0.45[-11.43] ngang là không hiểu.

 

Em xin chào bác 'Tue_NV' đã phản hồi lại cho em.

 

Thực ra tất cả cáii đó là toạ độ bác ạ, cái trước là inch, sau trong ngoặc là mét, tất cả đều vậy. Cái đó do công việc bên em, nếu bác giúp được cả hai loại KThước mét và inch đó thì em rất rất cẳm ơn.

Về phần thứ nhất em nói trên đó không phải là cóhay không bác ạ, mà là bác cho người ta tự chọn nên để sau dấu phảy bao nhiêu số là do độ chính xác của nguời ta chớ, còn những điều khác có lẽ em chưa hiểu kỹ được em xin lỗi các bác.

 

Còn vấn đề về cái lisp em up lên trên là em nhờ bác sửa lại giúp em, em chỉ muốn nghi toạ độ của điểm thôi và cách hiển thị thì như hình em up (nếu được cả mét và inch thì tốt quá bác ạ), và đặc biệt bác vẫn để cho người vẽ đc chọn độ chính xác sau dấu phảy là bao nhiêu số.

 

Em xin chân thành cảm ơn.

Chúc bác có những ngày làm việc 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
Em xin chào bác 'Tue_NV' đã phản hồi lại cho em.

 

Thực ra tất cả cáii đó là toạ độ bác ạ, cái trước là inch, sau trong ngoặc là mét, tất cả đều vậy. Cái đó do công việc bên em, nếu bác giúp được cả hai loại KThước mét và inch đó thì em rất rất cẳm ơn.

Về phần thứ nhất em nói trên đó không phải là cóhay không bác ạ, mà là bác cho người ta tự chọn nên để sau dấu phảy bao nhiêu số là do độ chính xác của nguời ta chớ, còn những điều khác có lẽ em chưa hiểu kỹ được em xin lỗi các bác.

 

Còn vấn đề về cái lisp em up lên trên là em nhờ bác sửa lại giúp em, em chỉ muốn nghi toạ độ của điểm thôi và cách hiển thị thì như hình em up (nếu được cả mét và inch thì tốt quá bác ạ), và đặc biệt bác vẫn để cho người vẽ đc chọn độ chính xác sau dấu phảy là bao nhiêu số.

 

Em xin chân thành cảm ơn.

Chúc bác có những ngày làm việc vui vẻ.

Chào bạn UiTroi

Cái toạ độ của bạn nói tới là toạ độ X hay toạ độ Y so với toạ độ gốc chuẩn tương đối trong hình vẽ vậy bạn?

Sao mà đo trong bản vẽ không thấy khớp với nhau tí nào?

Bạn nói cái trước là inch, sau trong ngoặc là mét nhưng cùng 1 vị trí lại thấy có một đường đứng ghi toạ độ, lại có một đường ngang ghi toạ độ là sao không hiểu?

Bạn hãy giải thích kỹ nhé, và không nên để người khác hỏi nhiều 1 vấn đề mất thời gian lắm.

Upfile cho bạn xem đây, những đường màu đỏ là không hiểu.Gui File

Chúc bạn vui

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
Em xin chào bác 'Tue_NV' đã phản hồi lại cho em.

 

Thực ra tất cả cáii đó là toạ độ bác ạ, cái trước là inch, sau trong ngoặc là mét, tất cả đều vậy. Cái đó do công việc bên em, nếu bác giúp được cả hai loại KThước mét và inch đó thì em rất rất cẳm ơn.

Về phần thứ nhất em nói trên đó không phải là cóhay không bác ạ, mà là bác cho người ta tự chọn nên để sau dấu phảy bao nhiêu số là do độ chính xác của nguời ta chớ, còn những điều khác có lẽ em chưa hiểu kỹ được em xin lỗi các bác.

 

Còn vấn đề về cái lisp em up lên trên là em nhờ bác sửa lại giúp em, em chỉ muốn nghi toạ độ của điểm thôi và cách hiển thị thì như hình em up (nếu được cả mét và inch thì tốt quá bác ạ), và đặc biệt bác vẫn để cho người vẽ đc chọn độ chính xác sau dấu phảy là bao nhiêu số.

 

Em xin chân thành cảm ơn.

Chúc bác có những ngày làm việc vui vẻ.

Chào bạn Ui_trơi_2005,

Dựa trên cái hình bạn post lên, mình làm thử cái lisp này dựa trên cái lisp bạn đã post. Quả thực như bác Tue_NV đã nói, bạn trình bày vấn đề hơi sơ sài quá nên mình phải tự đoán mò mà viết. Chỗ nào chưa đúng ý bạn thì bạn hỏi lại nhé. Đây là mình mới thử xem đã đúng yêu cầu của bạn hay chưa. Nếu đúng phần nào thì mình sẽ cải thiện tiếp sau:

(DEFUN EXCUTE(/ n P TX TY)
(setq str (strcat "\nPhan so le muon lay [" (itoa sl) "] (press Enter or Space for get default): "))
(setq n (getint str))
(if (/= n Nil)
(setq sl n)
)
(setq oldmode (getvar "pdmode"))
(setq P Null)
(setq p1 (getpoint "\n Pick a point for base point"))
(princ "\nPick a point or press ESC for exit:")
(setq P (getpoint))
(setq h (getreal "\n Type the text height : "))
(if (/= P Nil)
(progn
(setvar "pdmode" 3)
(setq TX (rtos (- (Car P) (car p1)) 2 sl))
(setq TY (rtos (- (Cadr P) (cadr p1)) 2 sl))
(setq ix (rtos (/ (- (car p) (car p1)) 25.4) 2 sl))
(setq iy (rtos (/ (- (cadr p) (cadr p1)) 25.4) 2 sl))
;;;(command "-INSERT" "TD" P "1" "1" "0" TX TY)
(command "point" p )
(if (/= (cadr p) (cadr p1))
(command "text" (polar p pi 10) h 0 (strcat iy " [" ty "]"))
)
(if (/= (car p) (car p1))
(command "text" (polar p (/ pi 2) 10) h 90 (strcat ix " [" tx "]"))
)
)
)

;;;);End While
)
(DEFUN INIT()
(if (= sl Nil)
(setq sl 2)
)
)
(DEFUN C:TOADO()
(INIT)
(EXCUTE)
(setvar "pdmode" oldmode)
)

Về cái lisp bạn post lên, không hiểu do bạn tự viết hay của người khác viết. Mình thực sự thấy nó hơi lộn xộn. Mình xin góp ý các lỗi cơ bản như sau:

1/- cái hàm (while T ......) thực sự là một cái hàm vô nghĩa và nó sẽ hoặc là làm cho hàm không chạy, hoặc là làm nó chạy tít mù không có điểm dừng bạn ạ.

2/- Hàm lệnh (command "insert" ...... ) dùng để đưa một block có sẵn vào trong bản vẽ chứ đâu có dùng để nhập text được. Nếu bạn định dùng hàm này thì tất yếu trong cad của bạn phải có sẵn cái block mang tên là TD. khi đó ban sử dụng hai biến tx và ty để làm gì nhỉ???

 

Túm lại bạn cần tìm hiểu kỹ thêm thì mới có thể tự hiệu chỉnh các lisp có sẵn theo ý mình sử dụng được bạn ạ.

 

Về cái lisp của mình viết, hiện tại do chưa hiểu cái cách bạn sử dụng các le hoặc line nên mình tạm thời cố định các điểm đặt text theo tọa độ điểm chọn. Nếu bạn muốn điểm đặt này tùy ý bạn thì thay các điểm đặt này bằng hàm getpoint. Nếu bạn muốn các điểm đặt tuân theo một quy luật nào đó thì bạn phải nói rõ cái quy luật ấy mới có thể viết lisp được.

Cái lisp này mới cho bạn ghi tọa độ cho một điểm mỗi lần chạy. Nếu bạn muốn một lần chạy ghi được nhiều điểm thì mình có thể cải tiến thêm cho bạn nhưng bạn phải nói rõ cách thức chọn là chọn một tập hợp điểm rồi ghi kích thước một lần hay mỗi lần chọn một điểm thì ghi kich thước luôn cho điểm đo. Theo mình thì cách sau sẽ đễ viết lisp hơn.

Về các kích thước khác như kích thước đường kính, bán kính, kích thước thẳng, .... bạn cũng nên nói rõ cách bạn cần thể hiện thì mới có thể xác định cách viết lisp cho bạn được

Nhìn chung yêu cầu của bạn không quá khó nhưng khó ở chỗ bạn chưa tự sửa lisp theo ý mình được nên bạn cần trình bày càng chi tiết càng thuận lợi cho người viết lisp và bạn cũng dễ dàng khi sử dụng, không gặp phải những lỗi ngớ ngẩn do người viết lisp chưa hiểu đúng ý bạn.

Chả ai muốn cái lisp của mình lại mang lại sự khó chịu cho người sử dụng cả bạn ạ, nên bạn hãy cố gắng bạn nhé. Nếu có thể bạn post cả cái bản vẽ ban đầu và cái bản vẽ kết quả mà bạn muốn có thì sẽ tốt hơn nhiều là việc chỉ dùng lời mô tả bạn ạ.

 

Chúc bạn luôn vui và hạnh phúc với những điều 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

http://www.zshare.net/download/56898590ebfcbb54/

http://www.zshare.net/download/56898620d9bef252/

Chào các bác. Xin lỗi vì bận quá lên em bây giờ mớ gửi yêu cầu lại cho cac bác. Em có gửi video kem theo. các bác tham khao nha. Các bác chú ý giup là: tính chính xác tới 3 dấu phảy. và Các dường tròn có chữ A,B,C,...(hay số 1,2,3...) giữa tâm hay ở bên cạnh , Các cột cũng có schư hay số. không thì chăng biết dò tới bao giờ(hic..hic..).Vì bản vẽ có quá nhiều lỗ thì sao và trọn lỗ không theo thứ tự thì sao?. Còn những nội dung như các bác đã làm thì ôn rồi. Mong các bác giúp đỡ. (ghi chú: Video này quay 1 phần ứng dụng của catia trong phần 2D. các bác có thể tham khảo ).

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 UiTroi

Cái toạ độ của bạn nói tới là toạ độ X hay toạ độ Y so với toạ độ gốc chuẩn tương đối trong hình vẽ vậy bạn?

Sao mà đo trong bản vẽ không thấy khớp với nhau tí nào?

Bạn nói cái trước là inch, sau trong ngoặc là mét nhưng cùng 1 vị trí lại thấy có một đường đứng ghi toạ độ, lại có một đường ngang ghi toạ độ là sao không hiểu?

Bạn hãy giải thích kỹ nhé, và không nên để người khác hỏi nhiều 1 vấn đề mất thời gian lắm.

Upfile cho bạn xem đây, những đường màu đỏ là không hiểu.Gui File

Chúc bạn vui

 

Chào bác 'Tue_NV'.

Cái toạ độ em nói tới là cả X,Y xác định toạ độ phải có X,Y chớ bác. Em đã xem lại trong bản vẽ đó đã bị Scale 1/2 lần nên nó ko đúng nữa cái đó có lẽ do em ko cẩn thận, xin lỗi bác. Tại cùng một điểm có hai toạ độ X,Y chữ nằm đứng là X, chữ nằm ngang là Y. Có lẽ cái này bác cứ tính điểm chuẩn là 0,0 là ra, mà có lẽ mấycái này tự suy luận ra hết ấy mà. mà em đã trình bày kiểu lisp em muốn nhờ các bác, bác thấy kiểu gì hay thì bác chỉnh lại theo ý bác, đâu nhất thiết phải là theo ý em đưa ra, bác cứ thấy làm như thế nào là tốt và hay cho mọi nguời cùng dùng ấy là đc, bác chỉ cần chỉ ra cho em đc cái toạ độ X,Y còn về mặt thẩm mỹ gì gì đó thì bác chỉ nên tham khảo ý kiến em đưa ra thôi, ví dụ như bản vẽ em đáng ra X là phải nằm ngang, Y là phải nằm dọc nhưng nó lại nguợc đời như thế, cái đó bác nên sủa cho em, em xin cảm ơn. Một ý kiến hay chả ai dám bác bỏ đây bác ạ.

Mong bác giúp đỡ.

Chúc bác mọi điều tốt đẹ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
Chào bạn Ui_trơi_2005,

Dựa trên cái hình bạn post lên, mình làm thử cái lisp này dựa trên cái lisp bạn đã post. Quả thực như bác Tue_NV đã nói, bạn trình bày vấn đề hơi sơ sài quá nên mình phải tự đoán mò mà viết. Chỗ nào chưa đúng ý bạn thì bạn hỏi lại nhé. Đây là mình mới thử xem đã đúng yêu cầu của bạn hay chưa. Nếu đúng phần nào thì mình sẽ cải thiện tiếp sau:

 

Về cái lisp bạn post lên, không hiểu do bạn tự viết hay của người khác viết. Mình thực sự thấy nó hơi lộn xộn. Mình xin góp ý các lỗi cơ bản như sau:

1/- cái hàm (while T ......) thực sự là một cái hàm vô nghĩa và nó sẽ hoặc là làm cho hàm không chạy, hoặc là làm nó chạy tít mù không có điểm dừng bạn ạ.

2/- Hàm lệnh (command "insert" ...... ) dùng để đưa một block có sẵn vào trong bản vẽ chứ đâu có dùng để nhập text được. Nếu bạn định dùng hàm này thì tất yếu trong cad của bạn phải có sẵn cái block mang tên là TD. khi đó ban sử dụng hai biến tx và ty để làm gì nhỉ???

 

Túm lại bạn cần tìm hiểu kỹ thêm thì mới có thể tự hiệu chỉnh các lisp có sẵn theo ý mình sử dụng được bạn ạ.

 

Về cái lisp của mình viết, hiện tại do chưa hiểu cái cách bạn sử dụng các le hoặc line nên mình tạm thời cố định các điểm đặt text theo tọa độ điểm chọn. Nếu bạn muốn điểm đặt này tùy ý bạn thì thay các điểm đặt này bằng hàm getpoint. Nếu bạn muốn các điểm đặt tuân theo một quy luật nào đó thì bạn phải nói rõ cái quy luật ấy mới có thể viết lisp được.

Cái lisp này mới cho bạn ghi tọa độ cho một điểm mỗi lần chạy. Nếu bạn muốn một lần chạy ghi được nhiều điểm thì mình có thể cải tiến thêm cho bạn nhưng bạn phải nói rõ cách thức chọn là chọn một tập hợp điểm rồi ghi kích thước một lần hay mỗi lần chọn một điểm thì ghi kich thước luôn cho điểm đo. Theo mình thì cách sau sẽ đễ viết lisp hơn.

Về các kích thước khác như kích thước đường kính, bán kính, kích thước thẳng, .... bạn cũng nên nói rõ cách bạn cần thể hiện thì mới có thể xác định cách viết lisp cho bạn được

Nhìn chung yêu cầu của bạn không quá khó nhưng khó ở chỗ bạn chưa tự sửa lisp theo ý mình được nên bạn cần trình bày càng chi tiết càng thuận lợi cho người viết lisp và bạn cũng dễ dàng khi sử dụng, không gặp phải những lỗi ngớ ngẩn do người viết lisp chưa hiểu đúng ý bạn.

Chả ai muốn cái lisp của mình lại mang lại sự khó chịu cho người sử dụng cả bạn ạ, nên bạn hãy cố gắng bạn nhé. Nếu có thể bạn post cả cái bản vẽ ban đầu và cái bản vẽ kết quả mà bạn muốn có thì sẽ tốt hơn nhiều là việc chỉ dùng lời mô tả bạn ạ.

 

Chúc bạn luôn vui và hạnh phúc với những điều bạn có.

 

Chào bác 'phamthanhbinh' .

Rất cảm ơn bác đã nói rõ những thiếu sót của em, thực ra em cũng chưa biết nhiều về lisp nên hỏi mà cũng lơ tơ mơ.

em đã up lên bản vẽ hoàn chỉnh đó rồi bác ạ. tuy nhiên do bất cẩn nên nó đã bị scale tỉ lệ 1/2, bác có thể SC lại với tỉ lệ là 2 là ok.

Ở đây em muốn ghi toạ độ X,Y.

- thứ nhất chọn độ chính xác sau dấu phảy bao nhiêu số(như lisp trên là ok)

- thứ hai chọn toạ độ gốc

- thứ ba chọn điểm cần ghi toạ độ

- thứ tư chọn vị trí đặt X dùng đường line để dóng từ điểm cần ghi toạ độ tới vị trí đặt gía trị toạ độ(dạng như khi vẽ lệnh LE)

- thứ năm chọn vị trí đặt Y dùng đường line để dóng từ điểm cần ghi toạ độ tới vị trí ghi toạ độ(dạng như khi vẽ lệnh LE)

chú ý: X,Y luôn vuông góc và X nằm ngang, Y nằm đứng

- enter tiếp thì tiếp tục bắt đầu từ thứ 2 (ko cần thứ nhất) và ghi xong các toạ độ này lại chuyển qua toạ độ thứ 3 cứ như vậy...

 

Đây chỉ là ý kiến của em, bác có cách nào hay hơn em sẵn lòng nghe bác chỉ bảo, mục đích của em là ghi đc toạ độ.

 

Rất cảm ơn bác, chúc bác luô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
Chào bác 'phamthanhbinh' .

Rất cảm ơn bác đã nói rõ những thiếu sót của em, thực ra em cũng chưa biết nhiều về lisp nên hỏi mà cũng lơ tơ mơ.

em đã up lên bản vẽ hoàn chỉnh đó rồi bác ạ. tuy nhiên do bất cẩn nên nó đã bị scale tỉ lệ 1/2, bác có thể SC lại với tỉ lệ là 2 là ok.

Ở đây em muốn ghi toạ độ X,Y.

- thứ nhất chọn độ chính xác sau dấu phảy bao nhiêu số(như lisp trên là ok)

- thứ hai chọn toạ độ gốc

- thứ ba chọn điểm cần ghi toạ độ

- thứ tư chọn vị trí đặt X dùng đường line để dóng từ điểm cần ghi toạ độ tới vị trí đặt gía trị toạ độ(dạng như khi vẽ lệnh LE)

- thứ năm chọn vị trí đặt Y dùng đường line để dóng từ điểm cần ghi toạ độ tới vị trí ghi toạ độ(dạng như khi vẽ lệnh LE)

chú ý: X,Y luôn vuông góc và X nằm ngang, Y nằm đứng

- enter tiếp thì tiếp tục bắt đầu từ thứ 2 (ko cần thứ nhất) và ghi xong các toạ độ này lại chuyển qua toạ độ thứ 3 cứ như vậy...

 

Đây chỉ là ý kiến của em, bác có cách nào hay hơn em sẵn lòng nghe bác chỉ bảo, mục đích của em là ghi đc toạ độ.

 

Rất cảm ơn bác, chúc bác luôn vui vẻ.

Chào bạn Ui_troi_2005,

Bạn xài thử thằng này coi sao:

(DEFUN EXCUTE(/ n P TX TY)
(setq str (strcat "\nPhan so le muon lay [" (itoa sl) "] (press Enter or Space for get default): "))
(setq n (getint str))
(if (/= n Nil)
(setq sl n)
)
(setq oldmode (getvar "pdmode"))
(setq P Null)
(setq p1 (getpoint "\n Pick a point for base point"))
(setq h (getreal "\n Type the text height : "))
(setq oldort (getvar "orthomode"))
(setvar "orthomode" 1)
)
(defun getord ()
(princ "\nPick a point or press ESC for exit:")
(setq P (getpoint))
(if (/= P Nil)
(progn
(setvar "pdmode" 3)
(setq TX (rtos (- (Car P) (car p1)) 2 sl))
(setq TY (rtos (- (Cadr P) (cadr p1)) 2 sl))
(setq ix (rtos (/ (- (car p) (car p1)) 25.4) 2 sl))
(setq iy (rtos (/ (- (cadr p) (cadr p1)) 25.4) 2 sl))
(command "point" p )
(setq p2 (getpoint p "\n Chon diem dat toa do X ")
  p3 (getpoint p "\n Chon diem dat toa do Y ")
)
(command "text" p3 h 90 (strcat iy " [" ty "]"))
(Command "line" p p3 "")
(command "text" p2 h 0 (strcat ix " [" tx "]"))
(command "line" p p2 "")
)
)
(setq ans (getstring "\n Do you want to continue ?"))
)
(DEFUN INIT()
(if (= sl Nil)
(setq sl 2)
)
)
(defun check (/ans)
(if (= ans "y")
(getord)
)
)
(DEFUN C:TOADO()
(INIT)
(EXCUTE)
(getord)
(while (= ans "y")
(check ans)
)
(setvar "pdmode" oldmode)
(setvar "orthomode" oldort)
)

 

Hy vọng bạn hài lò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
Chào bạn Ui_troi_2005,

Bạn xài thử thằng này coi sao:

(DEFUN EXCUTE(/ n P TX TY)
(setq str (strcat "\nPhan so le muon lay [" (itoa sl) "] (press Enter or Space for get default): "))
(setq n (getint str))
(if (/= n Nil)
(setq sl n)
)
(setq oldmode (getvar "pdmode"))
(setq P Null)
(setq p1 (getpoint "\n Pick a point for base point"))
(setq h (getreal "\n Type the text height : "))
(setq oldort (getvar "orthomode"))
(setvar "orthomode" 1)
)
(defun getord ()
(princ "\nPick a point or press ESC for exit:")
(setq P (getpoint))
(if (/= P Nil)
(progn
(setvar "pdmode" 3)
(setq TX (rtos (- (Car P) (car p1)) 2 sl))
(setq TY (rtos (- (Cadr P) (cadr p1)) 2 sl))
(setq ix (rtos (/ (- (car p) (car p1)) 25.4) 2 sl))
(setq iy (rtos (/ (- (cadr p) (cadr p1)) 25.4) 2 sl))
(command "point" p )
(setq p2 (getpoint p "\n Chon diem dat toa do X ")
  p3 (getpoint p "\n Chon diem dat toa do Y ")
)
(command "text" p3 h 90 (strcat iy " [" ty "]"))
(Command "line" p p3 "")
(command "text" p2 h 0 (strcat ix " [" tx "]"))
(command "line" p p2 "")
)
)
(setq ans (getstring "\n Do you want to continue ?"))
)
(DEFUN INIT()
(if (= sl Nil)
(setq sl 2)
)
)
(defun check (/ans)
(if (= ans "y")
(getord)
)
)
(DEFUN C:TOADO()
(INIT)
(EXCUTE)
(getord)
(while (= ans "y")
(check ans)
)
(setvar "pdmode" oldmode)
(setvar "orthomode" oldort)
)

 

Hy vọng bạn hài lòng.

 

Thật tuyệt vời bác Phanthanhbinh ơi.

cảm ơn bác nhiều lắm cơ, phiền bác chỉnh giúp em cái đường ghi nó đúng giữa chữ

 

phen này em xin làm đệ bác mong bác thu nhận

nick em là ui_troi_2005, khi nào có dịp mong bác chỉ bảo cho em chút kiến thức

 

Rất hân hạnh được biết 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

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

×