Đến nội dung


Hình ảnh
* * * - - 8 Bình chọn

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


  • Chủ đề bị khóa Chủ đề bị khóa
3783 replies to this topic

#341 duy782006

duy782006

    PHẠM QUỐC DUY

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 2155 Bài viết
Điểm đánh giá: 1360 (rất tốt)

Đã gửi 05 November 2009 - 04:47 PM

Phù. Cuối cùng cũng hoàn thành Lisp bố trí cột vào lưới
'Trần Diệu Nhân' thử nhé
Chức năng download Lisp file của diễn đàn đôi lúc bị lỗi. Nếu sử dụng chức năng này không được bạn nhấn nút Reply bài viết của Tue_NV (không sót nhé) về chạy là được

Sao Tue_NV không dùng insert bock cho hắn khỏe 1 tí. (tạo block vuông 1x1 sau đó chèn theo tỉ lệ x,y)
  • 0

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#342 Trần Diệu Nhân

Trần Diệu Nhân

    biết vẽ ellipse

  • Members
  • PipPip
  • 58 Bài viết
Điểm đánh giá: 20 (tàm tạm)

Đã gửi 05 November 2009 - 05:29 PM

Cảm ơn a Tue_NV nhiều lắm lắm, thật tình thì ko biết lấy gì để đền đáp công sức của a bỏ ra viết Lisp cho e. Thôi thì e xin gửi tặng 500k ủng hộ đồng bào Miền Trung khắc phục sau bão vậy!? A có thể nt số tài khoản của a cho e. Thân!
  • 0

#343 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 05 November 2009 - 05:39 PM

Sao Tue_NV không dùng insert bock cho hắn khỏe 1 tí. (tạo block vuông 1x1 sau đó chèn theo tỉ lệ x,y)

Chào anh Duy và bạn Trần Diệu Nhân
Code này Tue_NV viết theo ý anh Duy
-> Tue_NV nghĩ rằng sử dụng Block chèn vào sẽ thích hợp hơn cho việc chỉnh cột sau này. Nếu bạn sử dụng Lisp BX và BY trong bộ ACV của bác Hoành có thể biết được điều đó .
"BX : di chuyển Block theo phương X
BY : di chuyển Block theo phương Y"


Đây là Lisp chèn Block cột với kích thước là axb vào lưới cột
a: cạnh dài cột theo phương X và b là cạnh ngắn cột theo phương Y
Code đây :
(defun c:ltruc(/ oldos dai rong ang i j ssx ssy ltx lty ent dau cuoi ang i
minx miny maxx maxy i1 i2 i3 i4 pt1 in)
(vl-load-com)
;copyright by Tue_NV
(command "undo" "be")
(setq oldos (getvar "osmode"))
(setvar "osmode" 0)
(Setq dai (getdist "\n chieu dai cot theo phuong X :"))
(Setq rong (getdist "\n chieu rong cot theo phuong Y :"))
(setq ang 0)
(setq ss (ssget '((0 . "*LINE"))) i 0 j 0
ssx (ssadd) ssy (ssadd) ltx nil lty nil)

(Repeat (sslength ss)
(setq ent (ssname ss i))
(setq dau (vlax-curve-getStartPoint ent))
(setq cuoi (vlax-curve-getEndPoint ent))

(if (or (= (angle dau cuoi) ang) (= (angle dau cuoi) (+ ang pi)) )
(progn
(if (= (angle dau cuoi) pi)
(progn
(setq dau (vlax-curve-getEndPoint ent))
(setq cuoi (vlax-curve-getStartPoint ent))
)
)
(setq ssx (ssadd ent ssx))
(setq ltx (append ltx (list (list dau cuoi ent))))
)
)

(if (or (= (angle dau cuoi) (+ ang (/ pi 2)) ) (= (angle dau cuoi) (+ ang (/ (* 3 pi) 2))) )
(progn
(if (= (angle dau cuoi) pi)
(progn
(setq dau (vlax-curve-getEndPoint ent))
(setq cuoi (vlax-curve-getStartPoint ent))
)
)
(setq ssy (ssadd ent ssy))
(setq lty (append lty (list (list dau cuoi ent))))
)
)
(setq i (1+ i))
)
(setq ltx (vl-sort ltx '(lambda (x1 x2) (< (cadr(car x1)) (cadr(car x2)))
)
)
)
(setq lty (vl-sort lty '(lambda (y1 y2) (< (car(car y1)) (car(car y2)))
)
)
)
(alert "\n Vui long cho mot chut. Chuong trinh se bo tri luoi cot cho ban")
;Case #1
(setq minx (car ltx) miny (car lty)
maxx (nth (1- (length ltx)) ltx)
maxy (nth (1- (length lty)) lty)
i1 (car(giaodt (caddr minx) (caddr miny)))
i2 (car(giaodt (caddr maxx) (caddr maxy)))
i3 (car(giaodt (caddr maxx) (caddr miny)))
i4 (car(giaodt (caddr maxy) (caddr minx)))
pt1 (list (+ (car i1) (/ dai 2)) (+ (cadr i1) (/ rong 2)) 0)
pt2 (list (- (car i2) (/ dai 2)) (- (cadr i2) (/ rong 2)) 0)
pt3 (list (+ (car i3) (/ dai 2)) (- (cadr i3) (/ rong 2)) 0)
pt4 (list (- (car i4) (/ dai 2)) (+ (cadr i1) (/ rong 2)) 0)
)
(vecot pt1 dai rong)
(vecot pt2 dai rong)
(vecot pt3 dai rong)
(vecot pt4 dai rong)


(setq ltx (vl-remove minx ltx)) (setq ltx (vl-remove maxx ltx))
(setq lty (vl-remove miny lty)) (setq lty (vl-remove maxy lty))

;Case #2 : Intersect minx - y
(foreach x lty
(setq in (car(giaodt (caddr minx) (caddr x)))
pt1 (list (car in) (+ (cadr in) (/ rong 2)) 0)
)
(vecot pt1 dai rong)
);foreach

;Case #3 : Intersect maxx - y
(foreach x lty
(setq in (car(giaodt (caddr maxx) (caddr x)))
pt1 (list (car in) (- (cadr in) (/ rong 2)) 0)
)
(vecot pt1 dai rong)
);foreach

;Case #4 : Intersect miny - x
(foreach x ltx
(setq in (car(giaodt (caddr miny) (caddr x)))
pt1 (list (+ (car in) (/ dai 2)) (cadr in) 0)
)
(vecot pt1 dai rong)
);foreach

;Case #5 : Intersect maxy - x
(foreach x ltx
(setq in (car(giaodt (caddr maxy) (caddr x)))
pt1 (list (- (car in) (/ dai 2)) (cadr in) 0)
)
(vecot pt1 dai rong)
);foreach

;Case #5 : Intersect maxxy - minxy
(foreach x ltx
(foreach y lty
(setq in (car(giaodt (caddr x) (caddr y)))
)
(vecot in dai rong)
);foreach
);foreach
(alert "\n Finish")
(setvar "osmode" oldos)
(command "undo" "be")
(princ)
)
;
(defun vecot(p d r / el1)
(command "rectang" '(-0.5 -0.5) '(0.5 0.5))
(setq el1 (entlast))
(command "hatch" "solid" el1 "")
(if (/= (tblsearch "block" "luoicot") nil)
(command "block" "luoicot" "Y" '(0 0 0) el1 (entlast) "")
(command "block" "luoicot" '(0 0 0) el1 (entlast) "")
);if
(command "insert" "luoicot" p d r "0")
(princ)
)
;
(defun GiaoDT (ent1 ent2)
(setq ob1 (vlax-ename->vla-object ent1)
ob2 (vlax-ename->vla-object ent2)
)
(setq g (vlax-variant-value
(vla-IntersectWith ob1 ob2 acExtendNone)
)
)
(if (/= (vlax-safearray-get-u-bound g 1) -1)
(setq g (vlax-safearray->list g))
(setq g nil)
)
(if g
(progn
(setq kq nil
sd (fix (/ (length g) 3))
)
(repeat sd
(setq kq (append kq (list (list (car g) (cadr g) (caddr g))))
g (cdddr g)
)
)
kq
)
nil
)

)
Edit : đã fix một lỗi. Các bạn chạy chưa được test lại dùm. Thanks

@ Trần Diệu Nhân : Bạn chỉ cần đóng góp nhiều cho diễn đàn là quý lắm rồi. Với Tue_NV chỉ cần điều đó.
Và nếu bạn muốn ủng hộ đồng bào miền Trung thì mình ủng hộ ý kiến của bạn. Miền Trung phải hứng chịu hậu quả của cơn bão thiệt tình buồn lắm cheers.gif . Mình nghĩ nếu bạn có tấm lòng thì tất nhiên bạn sẽ có cách để ủng hộ đồng bào miền Trung mà. Mình nói vậy đúng không? Thôi, mình không nên bàn chủ đề này ở đây Nhân nhé
iluvyousmiley.gif

Bài viết đã được chỉnh sửa nội dung bởi ketxu: 07 January 2016 - 08:01 PM

  • 1

#344 hugo007

hugo007

    biết lệnh erase

  • Members
  • PipPipPip
  • 103 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 05 November 2009 - 06:53 PM

Chào bác TUE trong lisp của bác về dimstyle mẫu D100 rất hay,bác có thể chỉ cho e cách thêm dòng lệnh nào để trong tab FIT,dòng OVER DIMMENSION LINE ,WITHOUT LEADER sẽ được chọn khi nhấn lệnh dim100,mấy thông số kia vẫn như lisp gốc của bác.Thanks.
http://www.cadviet.c...o...205&st=2580
  • 0

#345 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 05 November 2009 - 08:38 PM

Chào bác TUE trong lisp của bác về dimstyle mẫu D100 rất hay,bác có thể chỉ cho e cách thêm dòng lệnh nào để trong tab FIT,dòng OVER DIMMENSION LINE ,WITHOUT LEADER sẽ được chọn khi nhấn lệnh dim100,mấy thông số kia vẫn như lisp gốc của bác.Thanks.
http://www.cadviet.c...o...205&st=2580

Bạn chèn thêm dòng này vào nhé :
"DIMFIT"   5
Hy vọng bạn tự xử lý được
:tongue2:
  • 0

#346 hugo007

hugo007

    biết lệnh erase

  • Members
  • PipPipPip
  • 103 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 05 November 2009 - 09:00 PM

Bạn chèn thêm dòng này vào nhé :

"DIMFIT"   5
Hy vọng bạn tự xử lý được
:tongue2:

Mong bác kiểm tra lại giùm e,e đã chèn dòng này vào rồi nhưng khi mở cad lên,đánh dim100,vào dimstyle kiểm tra thì trong trong tab FIT,dòng OVER DIMMENSION LINE ,WITHOUT LEADER của mục Text Placement vẫn chưa được chọn.Chân thành cảm ơn bác nhiều.
  • 0

#347 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 05 November 2009 - 09:15 PM

Mong bác kiểm tra lại giùm e,e đã chèn dòng này vào rồi nhưng khi mở cad lên,đánh dim100,vào dimstyle kiểm tra thì trong trong tab FIT,dòng OVER DIMMENSION LINE ,WITHOUT LEADER của mục Text Placement vẫn chưa được chọn.Chân thành cảm ơn bác nhiều.

Hãy chạy lại thử Code sau :

(defun c:dim100()
(command "style" "style1" "VHELVCN.TTF" "0" "1" "0" "n" "n")
(if (not (tblsearch "DImstyle" "Dim100"))
(progn
(command "dimstyle" "S" "Dim100")
(command "dim" "style" "style1"
"DIMADEC" 0
"DIMALT" 0
"DIMALTD" 3
"DIMALTF" 0.0394
"DIMALTRND" 0.0000
"DIMALTTD" 3
"DIMALTTZ" 0
"DIMALTU" 2
"DIMALTZ" 0
"DIMASZ" 1.2000
"DIMATFIT" 3
"DIMAUNIT" 0
"DIMAZIN" 0
"DIMBLK" "_Dot"
"DIMBLK1" ""
"DIMBLK2" ""
"DIMCLRD" 8
"DIMCLRE" 8
"DIMCLRT" 4
"DIMDEC" 0
"DIMDLE" 0.0000
"DIMDLI" 7.0000
"DIMEXE" 2.0000
"DIMEXO" 2.0000
"DIMFRAC" 0
"DIMGAP" 0.5000
"DIMJUST" 0
"DIMLFAC" 1.0000
"DIMLIM" 0
"DIMLUNIT" 2
"DIMLWD" 9
"DIMLWE" 9
"DIMRND" 0.0000
"DIMSAH" 0
"DIMSCALE" 100.0000
"DIMSD1" 0
"DIMSD2" 0
"DIMSE1" 0
"DIMSE2" 0
"DIMSOXD" 0
"DIMTAD" 1
"DIMTIH" 0
"DIMTIX" 1
"DIMTM" 0.0000
"DIMTMOVE" 0
"DIMTOFL" 1
"DIMTOH" 0
"DIMTSZ" 0.0000
"DIMTVP" 0.0000
"DIMTXSTY" "style1"
"DIMTXT" 2.5000
"DIMFIT" 5 \e)
(command "dimstyle" "S" "Dim100" "Y")
)
)
(graphscr)
(princ)
)

  • 1

#348 Trần Diệu Nhân

Trần Diệu Nhân

    biết vẽ ellipse

  • Members
  • PipPip
  • 58 Bài viết
Điểm đánh giá: 20 (tàm tạm)

Đã gửi 06 November 2009 - 08:00 AM

Chào anh Duy và bạn Trần Diệu Nhân
Code này Tue_NV viết theo ý anh Duy
-> Tue_NV nghĩ rằng sử dụng Block chèn vào sẽ thích hợp hơn cho việc chỉnh cột sau này. Nếu bạn sử dụng Lisp BX và BY trong bộ ACV của bác Hoành có thể biết được điều đó .
"BX : di chuyển Block theo phương X
BY : di chuyển Block theo phương Y"


Đây là Lisp chèn Block cột với kích thước là axb vào lưới cột
a: cạnh dài cột theo phương X và b là cạnh ngắn cột theo phương Y

Edit : đã fix một lỗi. Các bạn chạy chưa được test lại dùm. Thanks


Đồng ý với a Tue_NV e sẽ cố gắng đóng góp nhiều cho diễn đàn ạ...!
Lisp ltruc bị lỗi gì vậy a Tue_NV!? e dùng vẫn ok mà!?
À mà sao load lệnh ltruc thì các chế độ bắt điểm mất hết nhỉ, khắc phục được ko a Tue_NV!?
  • 0

#349 dlongkts

dlongkts

    biết vẽ line

  • Members
  • PipPip
  • 24 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 06 November 2009 - 08:14 AM

:tongue2:
  • 0

#350 dlongkts

dlongkts

    biết vẽ line

  • Members
  • PipPip
  • 24 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 06 November 2009 - 08:15 AM

Bài viết số 358 và 362 lấy ở đâu ạ?
link này mình mới saveas sang cad2000: http://www.cadviet.c...ngdoccopy_1.dwg
Mong các bạn có thể giúp đỡ cho mình
  • 0

#351 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6007 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 06 November 2009 - 05:47 PM

Bài viết số 358 và 362 lấy ở đâu ạ?
link này mình mới saveas sang cad2000: http://www.cadviet.c...ngdoccopy_1.dwg
Mong các bạn có thể giúp đỡ cho mình

Chào bạn dtlongkts,
Mình đã mở được file bạn gửi, xong chưa hiểu rõ ý bạn muốn. Bạn có thể post cái hình ảnh ví dụ mà bạn muốn có sau khi chạy lisp được không???
Chúc bạn vui.
  • 1
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#352 tuannguyen314169

tuannguyen314169

    biết lệnh ddedit

  • Members
  • PipPipPipPip
  • 297 Bài viết
Điểm đánh giá: 57 (tàm tạm)

Đã gửi 06 November 2009 - 08:49 PM

Nhờ các Bác giúp tôi giải bài toán này bằng autolisp, tôi đã làm thủ công như sau:
Bài toán:
Cho Solid và một mặt cong surface, mặt cong cắt solid thành 2 phần trên và dưới (hình Solid0.dwg), phần dưới có thể tích và tọa độ trọng tâm là (V0=89825.1412, Xg0=-5.6352, Yg0= 0.0000, Zg0=9.6808 ). Khi nghiêng mặt cong vuông góc theo phương Y một góc bất kỳ và cho mặt cong cắt solid. Tính phần thể tích bên dưới sao cho V=V0 và Xg=Xg0 hoặc có thể sai số cho phép <1%.
Tôi đã giải quyết bài toán trên theo phương pháp thủ công như sau:
Sử dụng command mass properties ta tính được (Hình Solid 0.dwg) :
Mass: V0= 89825.1412
Centroid: Xg0= -5.6352
Yg0= 0.0000
Zg0= 9.6808
http://www.mediafire...zb/SolidS0m.dwg

Sử dụng command mass properties ta tính được (Hình Solid 20.dwg) :
Mass: V20= 90491.3291
Centroid: Xg20= -5.4615
Yg20= -4.5842
Zg20= 10.2440
http://www.mediafire...k/SolidS20m.dwg

Sử dụng command mass properties ta tính được (Hình Solid 40.dwg) :
Mass: V40= 89249.0961
Centroid: Xg40= -5.3788
Yg40= -7.3732
Zg40= 11.1709
http://www.mediafire...j/SolidS40m.dwg

Mặc dù đã cố gắng rất nhiều nhưng giải quyết bằng phương pháp thủ công thì không trọn vẹn và mất rất nhiều thời gian và công sức tuy chỉ ở 2 trường hợp. Mong các bác chỉ giáo cho bằng cách viết autolisp để có thể sử dụng cho vô số các trường hợp khác.
  • 0

#353 dlongkts

dlongkts

    biết vẽ line

  • Members
  • PipPip
  • 24 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 06 November 2009 - 11:02 PM

Chào bạn dtlongkts,
Mình đã mở được file bạn gửi, xong chưa hiểu rõ ý bạn muốn. Bạn có thể post cái hình ảnh ví dụ mà bạn muốn có sau khi chạy lisp được không???
Chúc bạn vui.


Chào bạn phamthanhbinh đây là hình ảnh sau khi sử dụng lisp:
http://www.cadviet.c...lockmodel_1.pdf
Rất mong bạn giúp đỡ. Nếu được mình sẽ nạp tiền vào thẻ sim cho bạn
  • 0

#354 Thaistreetz

Thaistreetz

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 903 Bài viết
Điểm đánh giá: 505 (tốt)

Đã gửi 07 November 2009 - 02:05 AM

Bác dlongkts có vẻ hơi khó khăn để diễn đạt điều bác muốn nhỉ. thú thực là nhìn cả bản vẽ và file pdf rồi cả mấy post trên của bác em vẫn chưa hiểu bác muốn gì?
Bác đọc cái này nhé. chúc bác thành công.
  • 0

Hình đã gửi
IN HIM, I TRUST. THE TRUST IN MY GOD


#355 dlongkts

dlongkts

    biết vẽ line

  • Members
  • PipPip
  • 24 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 07 November 2009 - 09:00 AM

Bác dlongkts có vẻ hơi khó khăn để diễn đạt điều bác muốn nhỉ. thú thực là nhìn cả bản vẽ và file pdf rồi cả mấy post trên của bác em vẫn chưa hiểu bác muốn gì?
Bác đọc cái này nhé. chúc bác thành công.


Chào bạn Thái. Ý mình muốn:

Thứ nhất là copy các số dạng:1+, 1- ... (Các số này do mình đánh lệnh: leader --> setting/tolerance) thành 2+, 2-....
Thứ hai là copy 1 số được tạo ra do đánh lệnh att attdef sau đó kết hợp với các hình bất kỳ để thành 1 block. Mình copy block đó thì tự động nhẩy sang 1 block khác với cấp số cộng n=1 hoặc n=-1

  • 0

#356 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6007 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 07 November 2009 - 11:38 AM

Chào bạn Thái. Ý mình muốn:

Chào bạn dtlongkts,
Mình đã xem hình ảnh bạn gửi và cái file dwg gốc. Mình hiểu về yêu cầu của bạn như sau:
1/- Trên file bản vẽ đã có sẵn các text dạng A+ hay A- , trong đó A là một text số. Bây giờ bạn muốn dùng lệnh copy cái text mẫu này sang các vị trí khác mà mỗi lần copy thì A sẽ thay đổi tăng dần lên theo cấp số cộng với công sai a cho trước. Ví dụ copy 10 lần thì giá trị cuối cùng của A sẽ là A10 = A + a*10, còn ký tự + hay - không thay đổi.
2/- Trên bản vẽ đã có sẵn block thuộc tính. Trong block này có thuộc tính text mang giá trị số là B. Bây giờ bạn muốn copy cái block này sang các vị trí mới mà mỗi lần copy như vậy thì cái thuộc tính text B trong block sẽ thay đổi giá trị tăng hay giảm dần theo cấp số cộng với công sai b.

Cách hiểu này của mình có đúng không? Bởi phải hiểu đúng thì mới làm lisp phù hợp với yêu cầu của bạn được. Bạn cho mình biết ý kiến nha.
Chúc bạn luôn vui vẻ.

PS: Bạn đừng giận vì mọi người hỏi lại vì việc viết lisp nếu không hiểu đúng ý người cần thì có khi viết ra mà không dùng được, rất mất công bạn ạ.
  • 1
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#357 dlongkts

dlongkts

    biết vẽ line

  • Members
  • PipPip
  • 24 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 07 November 2009 - 12:53 PM

Chào bạn dtlongkts,
Mình đã xem hình ảnh bạn gửi và cái file dwg gốc. Mình hiểu về yêu cầu của bạn như sau:
1/- Trên file bản vẽ đã có sẵn các text dạng A+ hay A- , trong đó A là một text số. Bây giờ bạn muốn dùng lệnh copy cái text mẫu này sang các vị trí khác mà mỗi lần copy thì A sẽ thay đổi tăng dần lên theo cấp số cộng với công sai a cho trước. Ví dụ copy 10 lần thì giá trị cuối cùng của A sẽ là A10 = A + a*10, còn ký tự + hay - không thay đổi.
2/- Trên bản vẽ đã có sẵn block thuộc tính. Trong block này có thuộc tính text mang giá trị số là B. Bây giờ bạn muốn copy cái block này sang các vị trí mới mà mỗi lần copy như vậy thì cái thuộc tính text B trong block sẽ thay đổi giá trị tăng hay giảm dần theo cấp số cộng với công sai b.

Cách hiểu này của mình có đúng không? Bởi phải hiểu đúng thì mới làm lisp phù hợp với yêu cầu của bạn được. Bạn cho mình biết ý kiến nha.
Chúc bạn luôn vui vẻ.

PS: Bạn đừng giận vì mọi người hỏi lại vì việc viết lisp nếu không hiểu đúng ý người cần thì có khi viết ra mà không dùng được, rất mất công bạn ạ.


Đúng rồi đấy bạn. Công sai a là một số tự nhiên
Bạn cũng luôn vui nha
  • 0

#358 Thaistreetz

Thaistreetz

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 903 Bài viết
Điểm đánh giá: 505 (tốt)

Đã gửi 07 November 2009 - 01:38 PM

Chào bạn Thái. Ý mình muốn:

Thứ nhất là copy các số dạng:1+, 1- ... (Các số này do mình đánh lệnh: leader --> setting/tolerance) thành 2+, 2-....
Thứ hai là copy 1 số được tạo ra do đánh lệnh att attdef sau đó kết hợp với các hình bất kỳ để thành 1 block. Mình copy block đó thì tự động nhẩy sang 1 block khác với cấp số cộng n=1 hoặc n=-1

Xin lỗi bác nhé. tôi không có mù để bác fải tương cái yêu cầu to tổ chảng lên thế kia.
Bác nóng giận, bác tự ái vì lời góp ý của tôi ư? bác thử nhìn lại xem bác mất bao nhiêu bài post để người ta có thể hiểu được yêu cầu của bác trong khi người khác thì chỉ cần một hoặc 2 lần. Bác có biết tìm kiếm bài trong topic dài nhu topic này là một điều rất vất vả với mọi người không? trong khi chỉ với một yêu cầu bác đã xả một đống rác ra topic này.
Tôi nghĩ chắc bác hơn tuổi tôi đấy, vậy thì hãy cư xử cho xứng với tuổi của mình, đừng để những người trẻ tuổi như tôi coi thường.
  • 2

Hình đã gửi
IN HIM, I TRUST. THE TRUST IN MY GOD


#359 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6007 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 07 November 2009 - 04:13 PM

Đúng rồi đấy bạn. Công sai a là một số tự nhiên
Bạn cũng luôn vui nha

Chào bạn dtlongkts,
Bạn hãy thử đoạn lisp mình viết này xem nhé.
http://www.mediafire...t0nhdwyjw/1.lsp
(do trang upload của diễn đàn trục trặc nên mình up tạm trên Media files, bạn chịu khó down về nhé.)
Do trên bản vẽ DWG bạn gửi mình thấy các text của bạn thuộc nhiều loại đối tựơng khác nhau, cái thì là TEXT cái thì là ATTDEF, có cái lại là TOLERANCE nên mình viết thử một đoạn lisp chủ yếu để kiểm tra cái thuật toán mình định xài thôi. Đoạn lisp này chỉ thực hiện đúng với các text thuộc loại đối tượng ATTDEF thôi bạn nhé vì các loại đối tượng khác nhau sẽ có bảng mã DXF khác nhau mà.
Nếu bạn thấy nó xài được thì có thể thừa thắng xông lên làm tiếp cho các text thuộc loại đối tượng khác bạn nhé.
Với yêu cầu thứ hai của bạn, do mình không kiếm thấy cái block thuộc tính sẵn có nào trên bản vẽ bạn gửi mà mình không biết tạo block thế nào cho đúng ý bạn, bạn hãy thiết lập thử một block mẫu rồi gửi lên, nhớ gửi bằng Cad2004 nhé. Khi đó mình sẽ nghiên cứu giúp bạn.
Chúc bạn vui.
PS: Bạn nên rút kinh nghiệm những điều mọi người góp ý để cho diễn đàn của chúng ta ngày một thân thiện và có ích hơn với cộng đồng.
  • 2
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#360 tuannguyen314169

tuannguyen314169

    biết lệnh ddedit

  • Members
  • PipPipPipPip
  • 297 Bài viết
Điểm đánh giá: 57 (tàm tạm)

Đã gửi 08 November 2009 - 07:07 PM

Nhờ các Bác viết dùm Autolisp của bài tôi viết ở trang 18 của topic này về "Mặt cong cắt Solid". Cảm ơn rất nhiều.
  • 0