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

Viết Lisp theo yêu cầu

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

Anh Hoành đã từng viết 1 lish LockUp bản vẽ.

Và chắc anh cũng có lish Unlock bản vẽ đúng ko anh

Em biết anh ko thể trả loi trực tiếp vấn đề ấy trên diễn đàn

Em đang rất cần lish đó, anh cói thể gửi mail cho em đc không ah

gmail của em: ph168xd@gmail.com.

Thanks anh rất 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
Anh Hoành đã từng viết 1 lish LockUp bản vẽ.

Và chắc anh cũng có lish Unlock bản vẽ đúng ko anh

Em biết anh ko thể trả loi trực tiếp vấn đề ấy trên diễn đàn

Em đang rất cần lish đó, anh cói thể gửi mail cho em đc không ah

gmail của em: ph168xd@gmail.com.

Thanks anh rất nhiều!

 

Mọi ng đi đâu hết rùi :cheers:

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 thành viên trong Diễn đàn CadViet. Pro nào có thể viết dùm mình líp: Vẽ nết cắt, cửa đi, cửa sổ mà sau khi thực hiện xong đối tượng đước gán về layer của riêng chúng (Thực ra lip này trên Diễn dàn cũng đã có nhưng chưa tự gán layer nên mất thời gian gán lại). Thank !

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 dùng lệnh TCHU trong bộ ACV ở đây: http://www.cadviet.com/forum/index.php?showtopic=3825

 

 

Chào bác Nguyễn Hoành.

Rất cảm ơn bác về sự giúp đỡ nhiệt tình của bác. Như người ta vẫn bảo "được voi đòi tiên". Không biết bác có nghĩ như vậy và có cảm thấy khó chịu không nếu em có thêm một yêu cầu giúp đỡ như thế này.

Cái lệnh TCHU của bác em dùng đã cảm thấy rất tốt. Nhưng lệnh này em dùng khá thường xuyên. Em muốn cắt giảm một số thao tác của nó cho phù hợp với công việc của mình nhưng lại không biết chỉnh sửa ở đâu. Em muốn bác sửa lại lệnh trên thành một autolisp nhỏ với những thay đổi như sau:

Lệnh t1 tương tự như lệnh trên nhưng mặc định ở dòng T/S là viết thêm text ở phía trước dòng text.

Lênh t2 tương tự như lệnh t1, chỉ khác là ta chỉ cần insert thêm một kí tự duy nhất vào phía trước dòng text (Có nghĩa là sau khi nhập một kí tự,ta gõ space sẽ tương đương gõ enter)

Bác cố gắng giúp đỡ kẻ ngu muội này nhé.

Xin cảm ơn bác 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
9_29_2008_10_19_14_PM.jpg

 

Em không rành về lisp và chẳng biết tẹo nào về VBA for Cad. Nhưng nhu cầu công việc hiện tại em cần là triển khai bản vẽ thi công. Ngặt cái là file do bên A gửi qua đều là minsert objects. Em cần là phá khối và khai thác bản vẽ tối đa, 100% thì tốt. Với tầm hiểu biết của em thì chỉ lấy được 60% thôi. Mày mò tìm kiếm thì có hai code sau:

 

Không rõ bạn lấy được 60% là nhưng gì nhưng theo mình chắc là bạn đã lấy được tất cả các thứ (cửa, trục, tường, các block...) chỉ có text và hatch là ko lấy được -----> quá đủ để thực hiện công việc bạn cần rồi còn gì :cheers: mấy cái kia kiểu gì chẳng phải vẽ 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

anh làm ơn viết giúp em một lisp có nội dung như sau.

 

- mục đích: thay đổi Text Hight hiển thị của Dim .

- cú pháp lệnh: khi đánh lệnh chương trình sẽ yêu cầu nhập text hight muốn thay đổi (A) sau đó yêu cầu chọn Dim cần thay đổi.

+ chương trình sẽ kiểm tra text hight của dim ( B ) rồi gán giá trị A/B cho Fit Dim.

kết quả là dim vừa thay đổi sẽ có text hight hiển thị ra là ( B ).

 

nếu có thể anh viết sao cho sử dụng được với nhiều dim tức là nhập giá trị (A) rồi chọn nhiều dim chương trình sẽ gán giá trị A/B1, A/B2... riêng cho các dim khác nhau.

em cám ơn anh 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
Bác nào giúp em lisp này với!

Em có một đường line A (hoặc đường bất kì) cắt qua nhiều đường B khác, yêu cầu của em là:

- Gõ lệnh: chat

- Chọn đường line A là đối tượng làm dao cắt như lệnh trim

- Chọn phần cần chặt của đường B. Nhưng phần cần chặt không biến mất như lệnh trim mà nó chỉ bị tách ra làm đối tượng khác tại điểm giao cắt của đường A và B

Tại diển đàn em đã dùng thử lệnh BRK nhưng lệnh này ta đôi khi gây khó khăn cho em. Em mong bác nào rảnh giúp em cái nha. Thanks!!

 

Pác nào giúp em đi? em cảm ơn rất nhiều. Thanksssssss!!!!!!

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 cần nhờ bác Hoành viết cho minh 1 lisp chia 1 đoạn thẳng thành nhiều đoạn thằng tại những điểm đc chọn và 1 lisp tạo lệnh tắt trở về ngay 1 khung hình mình đã chon trước( 1 khung hình mà mình chứa các đối tượng mẫu mà hay dc sử dụng trong bản vẽ) sau đó lại trở về ngay khung hình cũ. Cam ơn bác 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
Bác nào giúp em lisp này với!

Em có một đường line A (hoặc đường bất kì) cắt qua nhiều đường B khác, yêu cầu của em là:

- Gõ lệnh: chat

- Chọn đường line A là đối tượng làm dao cắt như lệnh trim

- Chọn phần cần chặt của đường B. Nhưng phần cần chặt không biến mất như lệnh trim mà nó chỉ bị tách ra làm đối tượng khác tại điểm giao cắt của đường A và B

Tại diển đàn em đã dùng thử lệnh BRK nhưng lệnh này ta đôi khi gây khó khăn cho em. Em mong bác nào rảnh giúp em cái nha. Thanks!!

Pác nào giúp em đi? em cảm ơn rất nhiều. Thanksssssss!!!!!!

http://www.cadviet.com/forum/index.php?showtopic=5610

http://www.cadviet.com/forum/index.php?showtopic=5575

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

 

Topic này có lẽ nên dừng lại. Hoặc đổi tên thành Lish tham khảo

Anh Hoành là ng lập ra topic này. Anh nghĩ sao?

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
Topic này có lẽ nên dừng lại. Hoặc đổi tên thành Lish tham khảo

Anh Hoành là ng lập ra topic này. Anh nghĩ sao?

Topic này vẫn hoạt động mà.

 

Lâu lâu, những bài viết không liên quan sẽ được move sang các topic phù hợ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
Topic này vẫn hoạt động mà.

 

Lâu lâu, những bài viết không liên quan sẽ được move sang các topic phù hợp.

 

Có lẽ anh ko hiểu ý em. :leluoi:

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
Topic này vẫn hoạt động mà.

 

Lâu lâu, những bài viết không liên quan sẽ được move sang các topic phù hợp.

Chắc đến lúc để Bác Hoành và các Bác khác nghỉ ngơi sau vài năm cống hiến và đóng góp tích cực cho Diễn đàn CADViet.

Dạo gần đây ít được các Bác ấy "Viết Lisp theo yêu cầu" nữa.

Có lẽ đó cũng là ý của ph168xd

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 giùm lít như sau.

Đặt vấn đề: Trong giải Sap cần phải lập mô hình, đối với mô hình không gian (cọc xiên không gian) thì mỗi lần thay đổi độ xiên và góc nghiêng của cọc là phải khai báo lại tọa độ của cọc, để chuyển mô hình từ Acad qua, thường phải tính tay từ số liệu đầu vào (chiều dài cọc, độ xiên của cọc “m”, góc xoay của cọc trên mặt bằng), để tính ra tọa độ điểm chân cọc  vẽ điểm chân cọc  vẽ đường thẳng từ mủi cọc tới chân cọc. Cách làm này rất chầm, nên muốn nhờ các bác viết giùm list hỗ trợ nhanh hơn

 

Nội dung list:

Chọn điểm A (đỉnh cọc).

Nhập vào chiều dài cọc l

Nhập vào độ nghiêng của cọc m ; nếu cọc nghiêng 1:6 thì nhập vào 6

Nhập vào góc (α) hợp bởi phương của cọc đối với chiều dương của trục x (trên hình chiếu bằng)

Kết quả tính toán điểm B có tọa độ (x,y,z)

Với :

 

Vẽ đường line từ điểm A đến điểm B

Chọn điểm đầu cọc thứ 2 A1

Nhập vào giá trị m1

Nhập vào giá trị α1

Giá trị l1 lấy bằng l (như ở trên)

Xác định tọa độ điểm B1 (x1, y1, z1); tương tự như trên

Vể đường thẳng nối A1 đến B1.

.......

.......

Kết thúc lệnh gõ Enter (thoát khỏi lệnh).

Cam ơn 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
Nhờ các Bác viết giùm lít như sau.

Đặt vấn đề: Trong giải Sap cần phải lập mô hình, đối với mô hình không gian (cọc xiên không gian) thì mỗi lần thay đổi độ xiên và góc nghiêng của cọc là phải khai báo lại tọa độ của cọc, để chuyển mô hình từ Acad qua, thường phải tính tay từ số liệu đầu vào (chiều dài cọc, độ xiên của cọc “m”, góc xoay của cọc trên mặt bằng), để tính ra tọa độ điểm chân cọc  vẽ điểm chân cọc  vẽ đường thẳng từ mủi cọc tới chân cọc. Cách làm này rất chầm, nên muốn nhờ các bác viết giùm list hỗ trợ nhanh hơn

 

Nội dung list:

Chọn điểm A (đỉnh cọc).

Nhập vào chiều dài cọc l

Nhập vào độ nghiêng của cọc m ; nếu cọc nghiêng 1:6 thì nhập vào 6

Nhập vào góc (α) hợp bởi phương của cọc đối với chiều dương của trục x (trên hình chiếu bằng)

Kết quả tính toán điểm B có tọa độ (x,y,z)

Với :

 

Vẽ đường line từ điểm A đến điểm B

Chọn điểm đầu cọc thứ 2 A1

Nhập vào giá trị m1

Nhập vào giá trị α1

Giá trị l1 lấy bằng l (như ở trên)

Xác định tọa độ điểm B1 (x1, y1, z1); tương tự như trên

Vể đường thẳng nối A1 đến B1.

.......

.......

Kết thúc lệnh gõ Enter (thoát khỏi lệnh).

Cam ơn nhiều!

bạn nên upload 1 file mẫu.

 

Trong đó có: các thông số và hình sau khi đã vẽ theo các thông số đó.

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 nên upload 1 file mẫu.

 

Trong đó có: các thông số và hình sau khi đã vẽ theo các thông số đó.

à quên pass phần tính toán tọa độ.

Từ điểm A cho trước, và các thông số l, m a

Tọa độ điểm B (x, y, z) được xác định như sau:

x = (l/m).cos(a.pi/180)

y= (l/m).sin(a.pi/180)

z= - l

 

Chú thích: trong tính toán ở trên chiều dài cọc tính theo phương đứng chứ không tính theo chiều dài hình học, nên biểu thức xác định tọa độ điểm B có khác so với lập luận của các Bác!

File mẫu chỉ là một đường thẳng nối từ A đến B trong không gian thôi mà Bác, hơn nữa upload file lên mình đang gặp sự cố không up được.

Điểm A là điểm cho trước, điểm B được xác định dựa vào điểm A.

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 nên upload 1 file mẫu.

 

Trong đó có: các thông số và hình sau khi đã vẽ theo các thông số đó.

Ví dụ:

Điểm A(0,0,0)

nhập vào giá trị

l = 20

m = 6

a = 200

Kết quả tính toán được tọa độ B(-3.1323, -1.1401, -20)

Vẽ đường thẳng nối từ A đến B

 

chọn tiếp điểm A1.

nhập vào m1, a1, (l lấy giá trị cũ)

tính tiếp tọa độ điểm B1

........

nếu muốn kết thúc không vẽ nữa thì Enter

 

Cảm ơn các Bác nhiều 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 bác Nguyễn Hoành.

Rất cảm ơn bác về sự giúp đỡ nhiệt tình của bác. Như người ta vẫn bảo "được voi đòi tiên". Không biết bác có nghĩ như vậy và có cảm thấy khó chịu không nếu em có thêm một yêu cầu giúp đỡ như thế này.

Cái lệnh TCHU của bác em dùng đã cảm thấy rất tốt. Nhưng lệnh này em dùng khá thường xuyên. Em muốn cắt giảm một số thao tác của nó cho phù hợp với công việc của mình nhưng lại không biết chỉnh sửa ở đâu. Em muốn bác sửa lại lệnh trên thành một autolisp nhỏ với những thay đổi như sau:

Lệnh t1 tương tự như lệnh trên nhưng mặc định ở dòng T/S là viết thêm text ở phía trước dòng text.

Lênh t2 tương tự như lệnh t1, chỉ khác là ta chỉ cần insert thêm một kí tự duy nhất vào phía trước dòng text (Có nghĩa là sau khi nhập một kí tự,ta gõ space sẽ tương đương gõ enter)

Bác cố gắng giúp đỡ kẻ ngu muội này nhé.

Xin cảm ơn bác trước.

 

 

Bác Hoành hay bác nào đó trên diễn đàn giúp em việc này với. Em đang rất cần mà. 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
Chắc đến lúc để Bác Hoành và các Bác khác nghỉ ngơi sau vài năm cống hiến và đóng góp tích cực cho Diễn đàn CADViet.

Dạo gần đây ít được các Bác ấy "Viết Lisp theo yêu cầu" nữa.

Có lẽ đó cũng là ý của ph168xd

 

Cậu nói đấy nhé. Mình ko nói gì đâu..... :leluoi:

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 nghe trong giấc mơ? lisp này chưa từng có trên cadviet.

 

đây là lisp tôi vừa viết theo yêu cầu của bạn, tên lệnh là TDD (tọa độ điểm) và TDG (tọa độ gốc):

(defun c:tdd()
 (if (null dgoc)
(progn
  (alert "Chua co diem goc, ban hay chon diem goc")
  (c:tdg)
)
(while (setq p (getpoint "\nVao diem: "))
  (ctxt p)
)
 )
 (princ)
)
(defun c:tdg()
 (setq dgoc (getpoint "\nVao diem goc: "))
 (ctxt dgoc)
 (princ)
)
(defun ctxt(p)
 (setq lst (mapcar 'rtos (mapcar '- p dgoc))
gt (strcat (car lst)","(cadr lst))
 )
 (entmake (list (cons 0 "TEXT") (cons 10 (trans p 1 0)) (cons 1 gt) (cons 40 220)))
)

 

 

- Bác Hoành ơi, bác có thể bổ sung thêm tính năng: chọn tọa độ gốc thông qua pick điểm, sau đó nhập giá trị điểm toạ độ gốc vào. Tọa độ điểm sẽ xác định trên giá trị tọa độ gốc đã nhập. Chứ không nhất thiết bao giờ giá trị tọa độ gốc là 0,0.

- Trên diễn đàn đã có lisp đánh cốt: khi đánh cốt của 1 điểm nào đó không nhất thiết phải chọn cốt 000, mà chọn giá trị cốt ở vị trí bất kỳ sau đó mới đánh cốt.

Bác giúp em với nhé. Cám ơn 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

Chào Bác NguyenHoanh

Nhờ bác viết dùm đọan code vẽ mặt cắt ngang theo vết cắt định trước cắt qua các điểm có cao độ là các text 2d

chiều dai mặt cắt ngang được vẽ là chiều dài vết cắt và các điểm cao độ sẽ được pick từ các điểm gần nhất với vết cắt, khoảng cách lẻ trong mặt cắt ngang là khoảng các giữa hình chiếu vuông góc của các điểm trên vết cắt

Xin cám ơn anh Nguyen Hoang!

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.

×