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

[Nhờ viết Lsp] nhờ các cao thủ viết hộ cái lsp mir-tag ghi chú thép trong ASD

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

@ketxu: đã có lời cảm ơn ae giúp đỡ rồi mà sao bạn lại :angry2: ????????????????????????

- Bài này bên http://arttool.vn bác tinhkhuc có nói rõ @ r mà, bạn post sang đây k thấy add link ^^

- Bạn viết lisp dù 1 ngày hay 6 năm, thì cơ bản nhất vẫn là vấn đề về cặp (), mình thấy k đoạn nào là bạn không lỗi chỗ đó ?

- Hàm ssget bản thân trả về 1 selection set, là 1 tập chọn các đối tượng chứ không phải là 1 đối tượng rời rạc. Lisp trên bạn viết là đã hiểu sai hoàn toàn vấn đề khi mà sử dụng 1 đống hàm gán ename, entget(các hàm xử lý 1 đối tượng)... nhưng cuối cùng lại thao tác 1 lệnh mirror với tập ss. 2 đoạn này k liên quan gì đến nhau cả. THông thường từ tập chọn người viết sẽ chuyển thành list các ename, từ list này lại thao tác riêng lẻ

- Hàm ssget không đi cùng prompt giống như các hàm entsel, getinit,getstring.... , bạn phải đẩy prompt lên trước

- Bạn dùng lệnh nth 40, 44, 47, 50, về mặt cụ thể thì đúng, n về logic thì không ai dùng thế cả , vì list entget data của 1 đối tượng không phải lúc nào cũng ngần ấy phần tử, không phải phần tử thứ 40,44,47,50 lúc nào cũng là cái bạn cần lấ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

mình viết lại như thế này cho nó dễ xem. các bạn cho ý kiến nhé để mình hoàn thiện lsp. rồi sau đó có thể thay đổi cái hàm chọn để chọn được nhiều đối tượng.

 
(Defun C:ccb (/ ename ename1 ename2 ename3 ename4 ename5
  	x1 x2 x3 x4 p1 p2 p3 p4 y1 y2 y3 y4)
 (setq ename (entsel "Chon  doi tuong:")
ename1 (car ename)
ename2 (entget ename1)
ename3 (cdr (assoc 340 ename2))
ename4 (entget ename3)
)
 (ssget
'((-4 . "<or")
 	(0 . "RBCRENBARSHAPEDESC")
 	(0 . "RBCR_ENDE_BARDDESC")
 	(-4 . "or>")
 	)
  )
 (setq p3 (nth 50 ename3))
 (setq p2 (nth 47 ename3))
 (setq p1 (nth 44 ename3))
 (setq x1 (cadr (nth 44 ename3)))
 (setq x2 (cadr (nth 47 ename3)))
 (setq x3 (cadr (nth 50 ename3)))
 (if (> x3 x2)
(setq x4 (- x2 kcach))
(setq x4 (+ x2 kcach))
)
 ;khai bao bien kcach or gan bien kcach bang cai (x2+x3)/2
 (setq ename5 (subst p4 p3 ename4))
 (setq ename1 (append ename1 ename5));end setq
 (entmod ename1)
 (command: "_.mirror" ss "")
 ; phai khai bao bien ss de co the mir, có the khai bao no  bang ename1 sau khi da dung ham entmod
 (princ)
  	);end program

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 hantinh có đọc bài thichhoabinh viết bên trên k :)

Đáng lý bạn post file bản vẽ + yêu cầu thì có lẽ đã xong rồi ^^

Ss không thấy ở đâu thì bạn mirror làm sao đâ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

hok có bro nào dung món ASD này thiết kế kết cấu ah???

bro nào ra tay giúp ACE cái này đi. ngâm cứu mãi vẫn hok thành công toàn mắc.

http://www.4shared.c...a/Drawing2.html

Nghe nói ASD "tuyệt lắm" -> Làm rất nhanh mà vẫn cần hỗ trợ của LSP à? :D

Cái mà Tue_NV không thích ở ASD là cái hiệu chỉnh và setting của nó.

Muốn làm theo ý mình 1 công đoạn gì đó thì khó hoặc là không được như yêu cầu của bạn ở trên.

Chính vì thế mà mình thường dùng Lisp để tạo ra những ứng dụng hiệu quả, thích hiệu chỉnh cái chi thì hiệu chỉnh, thích thay đổi chi thì thay đổi. Nhưng phải công nhận là ý tưởng Vẽ dầm triển khai của ASD là quá tuyệt, còn cái file bạn vẽ thép sàn kia thì ..... quá xấu :lol:

 

Đã xem qua file của bạn bằng ASD2012. Đối tượng là đối tượng mới "RBCR_ENDE_SURFACEDESC" -> có thể nó tạo từ ARX nên chắc chỉ có thể dùng ARX hiệu chỉnh nó còn với Lisp thì "bó tay".

Tue_NV đã quan sát dữ liệu ename của đối tượng đó bằng Lisp trước và sau khi thay đổi properties của nó => thấy chẳng có gì cả.

Họa hoằn chăng, viết Lisp chăng nữa thì chỉ có thể dùng Command tác động vào nó mà thô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

ASD này vẫn có thể dùng được lsp mà. Đối tượng củ có vẫn là đôi tượng xref và có thể hiệu chỉnh được. các đối tượng đều do thang cad quản lý mà, nó dùng mã xref để quản lý. còn thằng ARX chỉ tạo ra đối tượng theo yêu cầu của người dùng. Còn lsp dùng để hiệu chỉnh các điểm chèn đối tượng thôi mà.

Còn thằng ASD nó làm việc theo nguyên tắc chiều kim đồng hồ mà bác. nó hok giống vn là chạy lung tung. đầu nay 1 kiểu đầu kia 1 kiểu để dảm bảo tính thông xuốt và thống nhất. Nó làm vậy để bác chỉ phải đi 1 chiều chứ hok thể đi 2 chiề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

Nghe nói ASD "tuyệt lắm" -> Làm rất nhanh mà vẫn cần hỗ trợ của LSP à? :D

 

ASD chỉ là AutoCAD + một số lệnh + object viết bằng ARX (program AutoCAD Based) nên cũng chẳng có gì là to tát, cái "tuyệt lắm" của nó chính là khả năng trao đổi dữ liệu giữa nó và các chương trình thuộc họ revit tuy nhiên nó lại chưa thực sự hoàn thiện (ở 2011 chưa xem qua 2012)

Điều đáng nói là việc bây giờ lại thảo luận dùng Dynamic Block trong ASD??? Cuối cùng chỉ dùng ASD để thống kê thép ??:D

 

@hantinh

Cái lisp của bạn cần thực ra trước đây theo hướng dẫn đó mình đã viết rồi, tuy nhiên nó có vài cái dở là: nếu cái tag đó nó ko nằm vuông góc như vậy, hoặc nó có nhiều phân đoạn hơn thì nó chạy tầm bậy lền => BỎ.

Nếu thực sự cần thì bạn sang bên Artool mà xin, nếu các thành viên đó muốn share thì đã gửi rồi còn ko thì tự hiểu, chứ có cái lisp bé tí thế mà bạn cứ đi vòng vòng kiếm hoài cũng mệt nhỉ?

Cái nữa là ko phải ai cũng cài ASD để viết lisp cho bạn.

Good luck!

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

ASD này vẫn có thể dùng được lsp mà. Đối tượng củ có vẫn là đôi tượng xref và có thể hiệu chỉnh được. các đối tượng đều do thang cad quản lý mà, nó dùng mã xref để quản lý. còn thằng ARX chỉ tạo ra đối tượng theo yêu cầu của người dùng. Còn lsp dùng để hiệu chỉnh các điểm chèn đối tượng thôi mà.

Còn thằng ASD nó làm việc theo nguyên tắc chiều kim đồng hồ mà bác. nó hok giống vn là chạy lung tung. đầu nay 1 kiểu đầu kia 1 kiểu để dảm bảo tính thông xuốt và thống nhất. Nó làm vậy để bác chỉ phải đi 1 chiều chứ hok thể đi 2 chiều,

Sáng nay mình dùng ASD2012 để xem bản vẽ của bạn.

Khi lấy dữ liệu của 1 ename "Block ghi chú thép sàn" thì nó ra vậy :

 

((-1 . <Entity name: 7ef07858>) (0 . "RBCR_ENDE_SURFACEDESC")

(330 . <Entity name: 7ef05cf8>) (5 . "ED3") (100 . "AcDbEntity") (67 . 0) (410

. "Model") (8 . "AutoCAD_Structural_Detailing_Distribution description") (100 .

"RbcrEntity") (90 . 1) (340 . <Entity name: 7ef07860>) (100 . "REPREZENTATION")

(90 . 1) (1 . "RBCR_DEFAULT") (100 . "REPREZENTATION") (90 . 1) (1 .

"RBCR_DEFAULT") (100 . "REPREZENTATION") (90 . 1) (1 . "RBCR_DEFAULT") (100 .

"RbcrObjectClientEntity") (90 . 1) (100 . "RbcrEnDescription") (90 . 1) (100 .

"RbcrEnBarDescBase") (90 . 1) (100 . "RbcrEnSurfaceDesc") (90 . 1))

 

Sau khi hiệu chỉnh điểm Grid của "Block ghi chú thép sàn" và lấy dữ liệu của ename đó thì nó ra vậy:

 

((-1 . <Entity name: 7ef07858>) (0 . "RBCR_ENDE_SURFACEDESC")

(330 . <Entity name: 7ef05cf8>) (5 . "ED3") (100 . "AcDbEntity") (67 . 0) (410

. "Model") (8 . "AutoCAD_Structural_Detailing_Distribution description") (100 .

"RbcrEntity") (90 . 1) (340 . <Entity name: 7ef07860>) (100 . "REPREZENTATION")

(90 . 1) (1 . "RBCR_DEFAULT") (100 . "REPREZENTATION") (90 . 1) (1 .

"RBCR_DEFAULT") (100 . "REPREZENTATION") (90 . 1) (1 . "RBCR_DEFAULT") (100 .

"RbcrObjectClientEntity") (90 . 1) (100 . "RbcrEnDescription") (90 . 1) (100 .

"RbcrEnBarDescBase") (90 . 1) (100 . "RbcrEnSurfaceDesc") (90 . 1))

 

Trước khi hiệu chỉnh và sau khi hiệu chỉnh nó như nhau, mình không biết tính sao??????

 

@Detailing : Bạn có thể cho tham khảo cái Lisp của bạn như lời bạn viết không?

Cái lisp của bạn cần thực ra trước đây theo hướng dẫn đó mình đã viết rồi, tuy nhiên nó có vài cái dở là: nếu cái tag đó nó ko nằm vuông góc như vậy, hoặc nó có nhiều phân đoạn hơn thì nó chạy tầm bậy lền => BỎ

 

Sáng nay, mình định ngồi viết thử cái Lisp này giúp cho bạn hantinh, nhưng không được. Tức thật :lol:

  • 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

@Detailing : Bạn có thể cho tham khảo cái Lisp của bạn như lời bạn viết không?

Cái lisp của bạn cần thực ra trước đây theo hướng dẫn đó mình đã viết rồi, tuy nhiên nó có vài cái dở là: nếu cái tag đó nó ko nằm vuông góc như vậy, hoặc nó có nhiều phân đoạn hơn thì nó chạy tầm bậy lền => BỎ

 

Sáng nay, mình định ngồi viết thử cái Lisp này giúp cho bạn hantinh, nhưng không được. Tức thật :lol:

Như mình đã nói do nó ko hay nên ko làm -> bỏ (tức là xóa).

mình chỉ nhớ đã "mò" như sau:

Bạn xem cái entget cái mã 330 trước và sau thì nó sẽ có chỗ khác nhau (tọa độ các đỉnh của tag leader) sau đó sửa mấy cái tọa đó đó lại dùng command + append, subt, ....

rồi entmod nó.

đại khái là vậy. Nhưng như mình có nói nó chỉ đúng với 1 trương hợp này (3 đỉnh + vuông góc) thôi, các TH khác nó chạy bậy

Hình như mình có post comment về cái này bên Arttool rồi, Tue sang đó xem vậy :D.

Thâ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

các bác làm jif mà nói có vẻ nặng thế. AE chúng ta lên đây để thảo luận để có những hỗ trợ từ những AE khac mà. Nếu nó có dở tệ thì cũng có cách giải quyết mà.

theo mình thi ban đầu cái jif cũng có những điểm hay điểm dở của nó. sau thời gian chúng ta sẽ có những cách giải quyết cho những điểm mà ta thấy chưa hợp lý mà. Tất cả các soft đều thế mà. Đấy là suy nghĩ riêng của mình thôi.

Quan trọng là hướng và cách giải quyết thôi mà. rồi từ từ có cách thôi mà bác detail

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 làm jif mà nói có vẻ nặng thế. AE chúng ta lên đây để thảo luận để có những hỗ trợ từ những AE khac mà. Nếu nó có dở tệ thì cũng có cách giải quyết mà.

theo mình thi ban đầu cái jif cũng có những điểm hay điểm dở của nó. sau thời gian chúng ta sẽ có những cách giải quyết cho những điểm mà ta thấy chưa hợp lý mà. Tất cả các soft đều thế mà. Đấy là suy nghĩ riêng của mình thôi.

Quan trọng là hướng và cách giải quyết thôi mà. rồi từ từ có cách thôi mà bác detail

Hehe, mình đâu nói gì đâu mà nặng nè. Chỉ là góp ý kiến cá nhân thôi vì mình có làm thử qua rồi, mắc công bạn cố gắng đến cuối lại thấy kết quả giống mình thì lại bực, hehe. Cách giải quyết thì giống như bài của bác tinhkhuc bên Arttool đây, theo đấy mà làm là ra kết quả với cái tag ví dụ (mấy cái khác thì ko dc :D)

Good luck!

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 detail ah! với mình thì thất bại nhiều hơn thành công, thế nên mình đau có cảm thấy bực đâu.Nhwngxx lúc như thế mình lại có thời gian ngội lại để phân tích và suy ngẫm để tìm ra con đường mới dựa trên cái đã có để hoàn thiện hơn thôi mà. Và đặc biết là cần sự trợ giúp của các AE trong lĩnh vực mà mình đang làm thôi 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

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

×