


phamthanhbinh
-
Số lượng nội dung
5864 -
Đã tham gia
-
Lần ghé thăm cuối
-
Ngày trúng
183
Bài đăng được đăng bởi phamthanhbinh
-
-
51 phút trước, thesaintzero đã nói:Có ai vào giúp mình với.
Hề hề hề,
Chưa hiểu rõ yêu cầu của bạn nên có muốn giúp cũng khó lắm thay.
1/- Cái thửa 200 được xác dịnh ra sao????
2/- Layer ranhduan chỉ gồm các polyline xác định ranh giới thửa hay bao gồm cả các đối tượng khác.
3/- Cái layer PC chỉ thấy có các text chứ không thấy có thủa nào cả.
4/- Việc tach thửa phân chiết dựa trên nguyên tắc nào???
5/- Các thông số trong bảng thống kê của bạn lấy ở đâu??? Là cái gì ???
Túm lại là bạn càng kiệm lời càng không nên chờ kết quả.
-
Hề hề hề,
Gõ thử thêm lệnh (vl-load-com) coi sao.
-
Nhờ sữa lỗi lisp?
trong AutoLisp
Hề hề hề,
Lưu ý bạn check lại các dialog vì thường thì các biến trong dialog sẽ lấy giá trị chuỗi string. Nếu bạn bỏ qua các biến này khi nhập liệu vào dialog sẽ bị báo lỗi như trên khi lisp check các dialog.
-
1
-
-
Vào lúc 1/1/2018 tại 15:59, nttrung111191 đã nói:Chào toàn thể anh em trên diễn đàn. Bên mình đã viết một vài tiện ích hỗ trợ thiết kế, thi công công trình dạng tuyến, nhất là công trình cầu đường. Tiện ích Pick cắt ngang là một trong số những tiện ích như vậy. Thấy anh em đang trao đổi rất nhiệt tình về tiện ích này, mình xin chia sẻ với anh em tiện ích, link tải tiện ích bên dưới. Hy vọng có thể giúp được anh em bớt thao tác thủ công. Cám ơn anh em đã đọc comment của mình.
Hề hề hề, đồ miễn phí có khác ......
-
Hề hề hề, rất tiếc là không đọc được lisp nên không biết sửa....
-
Hề hề hề,
Không hiểu câu hỏi của bạn. Định vị cái chốt tỳ, hay cái chốt tỳ định vị chi tiết ???
Theo hình vẽ thì có nhẽ bạn chưa định vị đủ cho chi tiết đâu. Hãy check lại.
-
14 giờ trước, timmaimotnguoi đã nói:dạo này e cũng đang đọc help a Bình ạ. cũng thấy hay hay ^^ nhưng mới viết được mấy cái cơ bản :)
Hề hề hề,
Quá tốt, đọc thấy hay là còn tiến xa.....
-
Kịp thời}}, timmaimotnguoi cho biết:Anh Tuệ cho e hỏi: hàm kia là nó tách text với số riêng ra luôn à anh?
Hề hề hề nó tách thành hai text, một text chuỗi và một text số. Muốn chuyển thành số bạn phải dùng thêm hàm (atoi ....)hoặc hàm (atof ...) tùy yêu cầu.
-
2 phút trước, timmaimotnguoi cho biết:Hề Hề Hề
Kiếm được thầy giỏi cũng khó nhỉ :) bác vui lòng tìm facebook hoặc zalo số này cho e với nhá 0988 705 579 ^^
Hề hề hề,
OK xa lem, thầy dốt thì sẵn , nhưng quan trọng là trò phải giỏi thôi. Trò mà giỏi thì thầy được ăn theo chớ thầy có giỏi cũng chả được cái chi chi đâu......
-
4 phút trước, timmaimotnguoi cho biết:Bác có facebook cho e xin với :) gạ làm quen hề hề hề
Hề hề hề,
Mặt thì có mà sách thì không. Cho nên cái sách mặt chỉ có nhõn một nửa.....
-
10 phút trước, timmaimotnguoi cho biết:Bác có riêng cái file help của cad được dịch sang tiếng việt không ạ. giống như excel e cũng có nó dịch sang tiếng việt nên dùng nó dễ hơn e nghĩ hàm cad nó cũng giống hàm của excel thôi
Hề hề hề,
Tài liệu tiếng Việt về lisp cũng có nhiều đây chứ. Có điều cần chịu khó tìm trên mạng là ra. Mình vì lười và dốt IT nên cứ đọc trong Help cho nó..... điên nặng thôi mà
-
26 phút trước, timmaimotnguoi cho biết:Ok e đã làm được thanks bác. (setq k1 (substr k 1 6) k (atoi (substr k 7))) e hiểu cái dòng code này ( k 1 6 ) là nó lấy số cố định từ trái sang phải là 6 số nếu số cố định e dài hơn thì e tăng số 6 đó lên thôi ^^. e vẫn hiểu được bản chất nhưng dùng hàm thì e ko hiểu các hàm ấy lắm :( muốn học mà khó quá ko biết bắt đầu từ đâu đi nhờ mãi cũng ngại
Hề hề hề,
Để hiểu các hàm, bạn cần có một chút tiếng ANh, sau đó chui vào Help của CAD để đọc rồi ứng dụng thử là vỡ ào ào, Hơn lũ miền trung ấy chứ. Hãy cố lên, Học được mà.
-
20 phút trước, timmaimotnguoi cho biết:Cảm ơn Bác quan tâm. Mới đầu học mà gặp đúng cái bài khó quá :(
Bác cho e cái lisp hoàn chỉnh để e nghiên cứu được không ạ. Đọc thì cũng hiểu bản chất nhưng viết được lại khó quá tại e mới tập tành tìm hiểu chưa sâu lắm
Hề hề hề,
Bạn lưu ý rằng nếu chuỗi nhập khác thì việc tách chuỗi cũng sẽ khác. Do vậy bạn nên tìm hiểu kỹ về các hàm tách chuỗi này
-
3 phút trước, timmaimotnguoi cho biết:Cảm ơn Bác quan tâm. Mới đầu học mà gặp đúng cái bài khó quá :(
Bác cho e cái lisp hoàn chỉnh để e nghiên cứu được không ạ. Đọc thì cũng hiểu bản chất nhưng viết được lại khó quá tại e mới tập tành tìm hiểu chưa sâu lắm
Hề hề hề,
Bước 1 chắc bạn OK rồi .
Bước 2 : tách chuỗi. Giả tỷ chuỗi của bạn nhập y như ví dụ bạn sẽ có biến k lúc này là BV-HC-02
Bạn viết các hàm tách chuỗi sau:
(setq k1 (substr k 1 6) k (atoi (substr k 7)))
Như vậy bạn sẽ có biến k1 là chuỗi BV-HC- và biến k là số 2
Bước 3: Bạn thay (cons 1 (itoa (+ j k 1))) bằng (cons 1 (strcat k1 (if (> (+ j k 1) 9) (itoa (+ j k 1)) (strcat "0" (itoa (+ j k 1))))))
Bạn làm thử coi sao nhé.
-
2 phút trước, timmaimotnguoi cho biết:^^ Ok rồi bác sao nó đơn giản nhỉ chỉ 2 dòng code thành một cái code hay hơn nhiều :)
1/ Nếu muốn có một text cố định mình tự nhập vào ví dụ: BV-HC-02
2/ Thì ở đây nó cũng giống như cái code trên nhưng nó chỉ nhảy số BV-HC-02-> BV-HC-03-> BV-HC-04....( nếu nhập BV-HC-03 thì bắt đầu là BV-HC-04->......)
Hề hề hề,
Cái muốn này cũng không khó. Tuy nhiên nó phức tạp vì người viết lisp không thể hiểu hết được các yêu cầu sẽ phát sinh của người dùng lisp. Bởi vậy mình chỉ có thể hướng dẫn bạn làm như sau:
1/- Thay dòng code (setq k (getint .....)) thành (setq k (getstring " Nhap vao doan text co dinh"))
Tỷ như đoạn text của bạn là BV-HC-02 thì đoạn text cố định bạn cần là BV-HC-02
2/- bạn phải tách chuỗi text cố định trên thành chuỗi BV-HC- với số k. Việc tách này có thể sử dụng hàm (substr ....) và đặt cho nó thành biến k1, với biến k lúc này phải được chuyển thành giá trị số.
3/- Thay thế dòng code (cons 1 (itoa (+ j k 1))) thành (cons 1 (strcat k1 (itoa (+ j k 1)))). Ở đây cần lưu ý kiểm tra xem nếu (+ j k 1) <=9 thì phải thêm số 0 phía trước đi
Thực tế chỉ cần như vậy nhưng nếu bạn chưa rành rẽ về lisp thì làm cũng hơi nhọc. bạn nên tìm hiểu thêm một chút để có thể chủ động trong việc sử dụng lisp của mình
-
2 giờ trước, timmaimotnguoi cho biết:Bác bình có sửa được code trên như vậy ko ạ? nếu được thì cảm ơn bác nhiều ạ.
Hề hề hề,
Yêu cầu của bạn có thể thực hiện như sau
1/- Thêm dòng code (setq K (getint "Nhap so bat dau can thiet")) vào đầu lisp, dưới dòng code (defun.....
2/- Sửa dòng code (cons 1 (itoa (1+ j))) thành (cons 1 (itoa (+ j k 1)))
Bạn hãy tự làm thử coi sao nhé.
-
Hề hề hề,
Hãy gửi cái block thuộc tính mà bạn cần add lên nhé. May ra co thể giúp bạn được.
-
Hề hề hề,
Thêm progn có tốt hơn là bỏ quách cả ngoặc đóng và ngoặc mở không hè????
-
Hề hề hề,
1/- Các điểm trên polyline 1 của bạn được xác định ra sao ???
2/- Trật tự các point được quy định ra sao ???
-
Hề hề hề,
1/- Đoạn code của bạn chưa đầy đủ
2/- Hình ảnh bạn gửi không có giá trị để test lisp
3/- Lỗi hiển thị trên Cad ra sao???
Vậy nên chưa có trả lời.
-
Lips bạn gửi sẽ thaY đổi "D32 HDPE - L100M" thành "L120M". Mình muốn nó thành "D32 HDPE - L120M". Chỉ thay đổi số trong "L(..)M thôi. Các thành phần còn lại giữ nguyên
Hề hề hề,
bạn đã dùng chưa?? Nếu đã dùng thì hãy gửi bản vẽ bạn test đó lên để mình kiểm tra lại.
-
1
-
-
Em vừa nhặt được 02 máy bơm nước có thông số kỹ thuật sau:
1/ Làm thế nào để xác định được lưu lượng của bơm???
Không có nhẽ lưu lượng của bơm Q = (130 - 20) l/1' (lít /phút ???) ???
P/s: Rất mong được các bác trợ giúp em xác định lưu lượng của 02 bơm nói trên,
em xin trân trọng cảm ơn và hậu tạ!
Anh gửi cho em số tài khoản nhé!
Hề hề hề,
Chính xác là như vậy tùy thuộc vào cột áp cần dùng. Cột áp cáng nhớn thì lưu lượng cáng nhỏ. Bơm số 1 có lưu lượng 20 lít phút với cột áp cần bơm là 35m và lưu ku7o75ng 100 l/phút với cột áp cần bơm 26 m. Tương tự bơm số 2 với cột áp cần bơm là 12.5 m lưu lượng sẽ là 130 l/phut và với cột áp cần bơm là 32m lưu lượng chỉ còn 20 lit/phút.
-
1
-
-
text để chọn ghi kết quả của em sẽ có dạng D32 HDPE - L100m hoặc D40 HDPE - L120m. Khi chọn đoạn có chiều dài 120,345m thì nó sẽ ghi thành "D32 HDPE - L122m (hoặc D40 HDPE - L122m). Nghĩa là nó chỉ thay đổi số 100 thành 122 thôi. Còn các chữ hoặc số còn lại (D32(hoặc D40) HDPE - L m giữ nguyên).
Hihi
Hề hề hề,
Đã test cái lisp mình gửi chưa??? Theo mình nếu chỉ có như trên thì cái lisp mình sửa là OK rồi.
-
1
-
-
http://www.cadviet.com/upfiles/7/135455_new_text_document_1.txt
Em có cái lips ghi độ dài của đoạn thẳng ở trên. Khi click vào 1 đoạn thẳng và 1 text có sẵn nó sẽ ghi ra ví dụ là "D00 HDPE - L40,354M". Trong đó D là đường kính, HDPE là vật liệu, L40.354m là chiều dài đoạn thẳng.
Giờ em muốn các bác sửa lại cho em như sau:
Khi click vào text để nó ghi ra sẽ là text nào đó có sẵn như D32 HDPE - L50M, hoặc D40 HDPE - L60M. Giờ em muốn nó chỉ thay đổi giá trị L60M thành giá trị của đoạn thẳng cần ghi. D32 HDPE hoặc D40 HDPE giữ nguyên. Bình thường nó sẽ có giá trị sau dấu phẩy, em muốn nó làm tròn và cộng thêm 2M nữa. Ví dụ 40,435m sẽ thành 42m, 40,624m sẽ thành 43m
Hề hề hề,
Chưa hiểu rõ yêu cầu của bạn lắm. Có phải tất cả các text mà bạn muốn thay thế đều có chữ L hay không??? Trong trường hợp bạn chọn điểm để ghi text chứ không phải thay thế text mới thì sao???
Mình sửa thử như vầy không biết có trúng ý bạn không????
(defun C:TL( / ss L e #h) (vl-load-com) (defun Length1(e) (vlax-curve-getDistAtParam e (vlax-curve-getEndParam e))) (or ans (setq ans 1)) (setq #h 3 L (strcat ;;;"D00 HDPE - L";;; ;;; (vl-princ-to-string (rtos (+ (* (getvar "dimlfac") (apply '+ (mapcar 'Length1 (vl-remove-if 'listp (mapcar 'cadr (ssnamex (ssget (list (cons 0 "LINE,ARC,CIRCLE,POLYLINE,LWPOLYLINE,ELLIPSE,SPLINE"))))))) )) 2) 2 0)" m" ) ans (cond ((getint (strcat "\nPhuong an nhap ket qua < " (itoa ans) " > :")))(ans)) txtObj (cond ((= ans 1) (vlax-ename->vla-object (car (entsel "\nChon text ghi ket qua :")))) (T (vla-addtext (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object))) L (vlax-3d-point (getpoint "\n Chon diem nhap ket qua" )) #h )) ) ) (setq nd (vlax-get-property txtobj 'TextString) k (vl-string-position (ascii "L") nd) txt1 (cond ( k (substr nd 1 (1+ k ))) (T "") ) ) (setq L (strcat txt1 L)) (vla-put-TextString txtObj L) (vla-put-Height txtObj #h) (princ) )
-
1
-
Nhờ viết lisp
trong AutoLisp
Đã đăng · Trả lời báo cáo
Hề hề hề,
Nếu chỉ để vẽ một mặt cắt duy nhất này thì việc sử dụng lisp là điều hơi ngớ ngẩn do bạn tự dựng hìng sẽ nhanh hơn nhiều là người ngồi viết ra lisp.
Còn nếu để tạo ra nhiều mặt cắt với các kích thước khác nhau do người dùng nhập vào thì bạn cần cung cấp các quan hệ hình học theo một quy luật nào đó vì người viết lisp không phải có thể hiểu hết những đặc thù về chuyên ngành của bạn.