binbin72088@gmail.com 11 Báo cáo bài đăng Đã đăng Tháng 7 20, 2021 Xin chào mọi người, Cho mình hỏi mình có 1 đường thẳng zigzag xanh lá như vầy, mình muốn đưa 3 điểm bên tay phải về đồng phẳng trên đường thẳng màu đỏ cùng 1 lúc như hình bên dưới, thì có cách nào hay lisp nào làm được không nhỉ ( không sử dụng lệnh strech hay move từng điểm nhé)? tương tự với trường hợp đưa hết cùng giá trị 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
Doan Nguyen Van 491 Báo cáo bài đăng Đã đăng Tháng 7 20, 2021 37 phút trước, binbin72088@gmail.com đã nói: Xin chào mọi người, Cho mình hỏi mình có 1 đường thẳng zigzag xanh lá như vầy, mình muốn đưa 3 điểm bên tay phải về đồng phẳng trên đường thẳng màu đỏ cùng 1 lúc như hình bên dưới, thì có cách nào hay lisp nào làm được không nhỉ ( không sử dụng lệnh strech hay move từng điểm nhé)? tương tự với trường hợp đưa hết cùng giá trị y Có thể dùng lsp 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
binbin72088@gmail.com 11 Báo cáo bài đăng Đã đăng Tháng 7 20, 2021 bạn biết lisp nào ko chỉ mình vớ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
Doan Nguyen Van 491 Báo cáo bài đăng Đã đăng Tháng 7 20, 2021 6 giờ trước, binbin72088@gmail.com đã nói: bạn biết lisp nào ko chỉ mình với. Bạn nhắn file qua zalo mình 0976379894 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
binbin72088@gmail.com 11 Báo cáo bài đăng Đã đăng Tháng 7 22, 2021 file trên mình vẽ đại khái để minh họa ah 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
Doan Nguyen Van 491 Báo cáo bài đăng Đã đăng Tháng 7 23, 2021 12 giờ trước, binbin72088@gmail.com đã nói: file trên mình vẽ đại khái để minh họa ah Thế này đúng không 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
DungNguyen685 40 Báo cáo bài đăng Đã đăng Tháng 7 23, 2021 2 giờ trước, Doan Nguyen Van đã nói: Thế này đúng không nhỉ hiệu ứng kéo chạy như này phải dùng reactor không bác 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
Doan Nguyen Van 491 Báo cáo bài đăng Đã đăng Tháng 7 23, 2021 8 phút trước, DungNguyen685 đã nói: hiệu ứng kéo chạy như này phải dùng reactor không bác nhỉ? Không phải reactor đâu bạn 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
DungNguyen685 40 Báo cáo bài đăng Đã đăng Tháng 7 23, 2021 12 phút trước, Doan Nguyen Van đã nói: Không phải reactor đâu bạn Vậy chắc STRETCH các đỉnh nó về đường Xline rồi STRETCH lại. Cảm ơn bác 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
Doan Nguyen Van 491 Báo cáo bài đăng Đã đăng Tháng 7 23, 2021 9 phút trước, DungNguyen685 đã nói: Vậy chắc STRETCH các đỉnh nó về đường Xline rồi STRETCH lại. Cảm ơn bác nhé! Cái kia cũng k phải Xline, cũng k phải Stretch, nhưng theo bạn nói cũng có thể là 1 cá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
alisp 72 Báo cáo bài đăng Đã đăng Tháng 7 23, 2021 3 phút trước, Doan Nguyen Van đã nói: Cái kia cũng k phải Xline, cũng k phải Stretch, nhưng theo bạn nói cũng có thể là 1 cách Bác DungNguyen thấy hay cứ hỏi miết, nó là Gread thôi mà, mang tính biểu diễn thôi, LM rất hay dù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
DungNguyen685 40 Báo cáo bài đăng Đã đăng Tháng 7 23, 2021 12 phút trước, alisp đã nói: Bác DungNguyen thấy hay cứ hỏi miết, nó là Gread thôi mà, mang tính biểu diễn thôi, LM rất hay dùng. Cảm ơn bác! Mình cũng thấy ở một số lisp tạo hiệu ứng mà chưa biết từ khóa để tìm hiểu thử ấy 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
binbin72088@gmail.com 11 Báo cáo bài đăng Đã đăng Tháng 7 23, 2021 Cám ơn bạn @Doan Nguyen Van bạn làm gần ra ý mình rồi đó, sẽ có hai thao tác 1 và 2 như hình và áp dụng cho tất cả các object được chọn. 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
binbin72088@gmail.com 11 Báo cáo bài đăng Đã đăng Tháng 7 23, 2021 vâng mình sẽ liên hệ sau giờ là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
thiep 365 Báo cáo bài đăng Đã đăng Tháng 7 23, 2021 8 giờ trước, binbin72088@gmail.com đã nói: Cám ơn bạn @Doan Nguyen Van bạn làm gần ra ý mình rồi đó, sẽ có hai thao tác 1 và 2 như hình và áp dụng cho tất cả các object được chọn. Lisp sẽ gửi tặng bạn sớm nhất trong buổi sáng mai. đợi 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
cuongtk2 356 Báo cáo bài đăng Đã đăng Tháng 7 23, 2021 command: Stx CadStretch.rar 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
binbin72088@gmail.com 11 Báo cáo bài đăng Đã đăng Tháng 7 23, 2021 Cảm ơn anh @cuongtk2 nhiều lắm, lisp đúng ý lun, lần đầu tiên e xài lisp bằng vba luôn. Đồng thời cũng cảm ơn anh @thiep vì rất hào hiệp. E cũng muốn biết bản chất cách làm như nào để tự làm cho trục oy nữa, mấy anh cho em biết nguyên lý được ko? Ban đầu e nghĩ là dùng SSget rồi chọn các vertex, rồi dùng hàm for cho từng điểm, sau đó move lần lượt các điểm về 0, e biết sơ sơ ko biết vậy có đúng ko? 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
thiep 365 Báo cáo bài đăng Đã đăng Tháng 7 24, 2021 6 giờ trước, binbin72088@gmail.com đã nói: Cảm ơn anh @cuongtk2 nhiều lắm, lisp đúng ý lun, lần đầu tiên e xài lisp bằng vba luôn. Đồng thời cũng cảm ơn anh @thiep vì rất hào hiệp. E cũng muốn biết bản chất cách làm như nào để tự làm cho trục oy nữa, mấy anh cho em biết nguyên lý được ko? Ban đầu e nghĩ là dùng SSget rồi chọn các vertex, rồi dùng hàm for cho từng điểm, sau đó move lần lượt các điểm về 0, e biết sơ sơ ko biết vậy có đúng ko? "Bản chất làm như nào để tự làm cho trục oy nữa" là dùng hàm vlax-curve-getClosestPointTo để tìm điểm gần nhất của điểm này trên 1 curve nào đó. Như vậy, bất kỳ curve ở hướng nào, nó cũng tìm được điểm getClosestPoinTo (ở đây curve là 1 line // với trục ox hoặc oy) Bạn thử lisp này với phương Line là // trục Ox hoặc Oy. Nếu bạn muốn phương của Line bất kỳ thì khi lisp yêu cầu "Pick endpoint line:" thì nhấn nút F8. (defun emLINE (pt1 pt2) (entmakex (list (cons 0 "LINE") (cons 100 "AcDbEntity") (cons 100 "AcDbLine") (cons 10 pt1) (cons 11 pt2) ) ) ) (defun PointInside (pt ptlst / l_dis) (mapcar '(lambda (x) (setq l_dis (cons (distance pt x) l_dis))) ptlst) (acet-geom-point-inside pt ptlst (apply 'max l_dis)) ) ;;; Lisp stretch vertexes's lwpolyline inside a window to line ;;; by Trân Thiêp, tel: 0918841230 (defun c:trev (/ p1 p2 porect enttemp ss entLine enttempLWP p1 p2 p3 p4 entlst obj orthomode_o L1 lstpo vlapt poner ) (setq acadObj (vlax-get-acad-object) doc (vla-get-ActiveDocument acadObj) *Model* (vla-get-ModelSpace doc) ) (defun *error* (msg) (or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*") (princ (strcat "\n** Error: " msg " **")) ) (acet-sysvar-restore) (vla-EndUndoMark doc) (princ) ) (vla-StartUndoMark doc) (acet-sysvar-set (list "cmdecho" 0 "osmode" 0)) (setq orthomode_o (getvar "ORTHOMODE")) (setq p1 (getpoint "\nPick point1 window: ") p2 (getcorner p1 "\nPick point2 corner: ") ) (setq ss (ssget "_C" p1 p2 '((0 . "*POLYLINE")))) (setq porect (acet-geom-rect-points p1 p2)) (setvar "ORTHOMODE" 1) (setq p3 (getpoint "\nPick startpoint line: ") p4 (getpoint p3 "\nPick endpoint line: ") ) (setq entLine (emLINE p3 p4)) (setvar "ORTHOMODE" orthomode_o) (setq l1 nil) (setq vlapt (vlax-make-safearray vlax-vbdouble '(0 . 1))) (setq entlst (acet-ss-to-list ss)) (if entlst (progn (foreach ent entlst (setq L1 nil) (setq obj (vlax-ename->vla-object ent)) (setq lstpo (acet-geom-vertex-list ent)) (foreach po lstpo (if (PointInside po porect) (progn (setq poner (vlax-curve-getClosestPointTo entLine po T)) (vlax-safearray-fill vlapt (list (car poner) (cadr poner))) (vla-put-Coordinate obj (fix (vlax-curve-getParamAtPoint ent po)) vlapt ) ) ) ) ) (acet-sysvar-restore) (vla-EndUndoMark doc) (princ "\nOk") ) ) (princ) ) 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
cuongtk2 356 Báo cáo bài đăng Đã đăng Tháng 7 24, 2021 mô tả cách thực hiện: - đặt 1 điểm p1 làm nơi xác định giá trị X, lấy giá trị p1.X. - dùng 2 điểm p2, p3 để xác định 1 crossing window cho selection - tạo một Extens3d rồi add các điểm p2 p3 vào. Extens này dùng để xác định point_inside cho các vertext của curve - dùng vòng for để duyệt vertex của cuvre, nếu inside p2 p3 thì thay đổi giá trị X cho point đó (với Polyline) - tương tự startpoint, entpoint với Line myCommands.cs.txt 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
DungNguyen685 40 Báo cáo bài đăng Đã đăng Tháng 7 24, 2021 Vì mấy anh chia sẻ rồi em cũng thử bằng cách nêu lúc đầu. Chứ không có ý làm ảnh hưởng đến bác @Doan Nguyen Van nhé! (defun getVert (e / i L) ;;;Return list of all vertex from pline e (setq i 0 L nil) (vl-load-com) (repeat (fix (+ (vlax-curve-getEndParam e) 1)) (setq L (append L (list (vlax-curve-getPointAtParam e i)))) (setq i (1+ i)) ) L ) (defun c:STR(/ ent p1 cmd osm L diem1 diem2 diem3 diem4 diem5 diem6 diem7 kc1 kc2 L1 L2 L3 gt1 gt2 gt3 list1 list2 doan1 doan2 doan3 doan4 doan5 doan6 doan7 doan8 sset k lay1 lay2 lay3 lay4 lay5 lay6 ssetz ) (prompt "Chon doi tuong muon STRETCH") (setq ent (car (entsel))) (setq p1 (getpoint "\nChon diem muon STRETCH den:")) (command ".undo" "BE") (setq cmd (getvar "CMDECHO")) (setq osm (getvar "OSMODE")) (setvar "CMDECHO" 0) (setvar "OSMODE" 0) (setq L (getvert ent)) (setq L (vl-sort L '(lambda (x y) (> (cadr x)(cadr y))))) (setq diem1 (car (nth 0 L))) (setq diem2 (car (nth 1 L))) (setq diem3 (cadr (nth 0 L))) (setq diem4 (cadr (nth 1 L))) (setq diem5 (car p1) ) (setq diem6 (list diem5 diem3 )) (setq diem7 (list diem5 diem4 )) (setq kc1 (distance (nth 0 L) diem6)) (setq kc2 (distance (nth 1 L) diem7)) (setq L1 nil ) (setq L2 nil ) (setq L3 nil ) (setq j 0) (if (< diem1 diem2) (progn ;(alert "loaij1") (if (< kc1 kc2) (progn ;(alert "trai") (while (< j (length L) ) (setq gt1 (/ (atof (itoa j)) 2)) (setq gt2 (fix gt1)) (setq gt3 (- gt1 gt2)) (if (= gt3 0) (progn (setq list1 (nth j L)) (setq L1 (append L1 (list list1))) ) (progn (setq list2 (nth j L)) (setq L2 (append L2 (list list2))) ) ) (setq j (1+ j)) ) ) ) (if (> kc1 kc2) (progn ;(alert "phai") (while (< j (length L) ) (setq gt1 (/ (atof (itoa j)) 2)) (setq gt2 (fix gt1)) (setq gt3 (- gt1 gt2)) (if (/= gt3 0) (progn (setq list1 (nth j L)) (setq L1 (append L1 (list list1))) ) (progn (setq list2 (nth j L)) (setq L2 (append L2 (list list2))) ) ) (setq j (1+ j)) ) ) ) ) (progn ;(alert "loaij2") (if (< kc1 kc2) (progn ;(alert "phai") (while (< j (length L) ) (setq gt1 (/ (atof (itoa j)) 2)) (setq gt2 (fix gt1)) (setq gt3 (- gt1 gt2)) (if (= gt3 0) (progn (setq list1 (nth j L)) (setq L1 (append L1 (list list1))) ) (progn (setq list2 (nth j L)) (setq L2 (append L2 (list list2))) ) ) (setq j (1+ j)) ) ) ) (if (> kc1 kc2) (progn ;(alert "trai") (while (< j (length L) ) (setq gt1 (/ (atof (itoa j)) 2)) (setq gt2 (fix gt1)) (setq gt3 (- gt1 gt2)) (if (/= gt3 0) (progn (setq list1 (nth j L)) (setq L1 (append L1 (list list1))) ) (progn (setq list2 (nth j L)) (setq L2 (append L2 (list list2))) ) ) (setq j (1+ j)) ) ) ) ) ) (setq k 0) (while (< k (length L1) ) (setq doan1 (nth k L1)) (setq doan6 (car p1) ) (setq doan7 (cadr (nth k L1))) (setq doan8 (list doan6 doan7 0.0) ) (setq doan2 (polar doan1 0 1)) (setq doan3 (polar doan1 0 -1)) (setq doan4 (polar doan2 (/ pi 2) 1)) (setq doan5 (polar doan3 (/ pi 2) -1)) (setq sset (ssget "_C" doan5 doan4 '((0 . "*POLYLINE")))) (setq kc2 (distance doan1 doan8)) (command "stretch" sset "" doan1 doan8) (setq k (1+ k)) ) ;(setq lay1 (nth 0 L1)) ;(setq lay2 (nth (- (length L1) 1) L1)) ;(setq lay3 (polar lay1 (/ pi 2) 10)) ;(setq lay4 (polar lay2 (/ pi 2) -10)) ;(setq lay5 (polar lay3 0 10)) ;(setq lay6 (polar lay4 0 -10)) ;(setq ssetz (ssget "_C" lay5 lay6 '((0 . "*POLYLINE")))) ;(command "stretch" ssetz "" lay1 pause) (setvar "CMDECHO" cmd) (setvar "OSMODE" osm) (command ".undo" "E") (princ) ) 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
binbin72088@gmail.com 11 Báo cáo bài đăng Đã đăng Tháng 7 24, 2021 Xin cám ơn đóng góp của mọi người, biết lisp làm được nhiều thứ hay vầy em cũng tập tành làm từ sớm rùi, hôm bữa mới đọc cuốn nhập môn lisp mà thích wa. ko biết khi nào mới viết lisp đc như mọi người. người nào viết lisp nhìn cũng pro lắm luô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
binbin72088@gmail.com 11 Báo cáo bài đăng Đã đăng Tháng 7 24, 2021 14 giờ trước, thiep đã nói: "Bản chất làm như nào để tự làm cho trục oy nữa" là dùng hàm vlax-curve-getClosestPointTo để tìm điểm gần nhất của điểm này trên 1 curve nào đó. Như vậy, bất kỳ curve ở hướng nào, nó cũng tìm được điểm getClosestPoinTo (ở đây curve là 1 line // với trục ox hoặc oy) Bạn thử lisp này với phương Line là // trục Ox hoặc Oy. Nếu bạn muốn phương của Line bất kỳ thì khi lisp yêu cầu "Pick endpoint line:" thì nhấn nút F8. trev.lsp [✎] (defun emLINE (pt1 pt2) (entmakex (list (cons 0 "LINE") (cons 100 "AcDbEntity") (cons 100 "AcDbLine") (cons 10 pt1) (cons 11 pt2) ) ) ) (defun PointInside (pt ptlst / l_dis) (mapcar '(lambda (x) (setq l_dis (cons (distance pt x) l_dis))) ptlst) (acet-geom-point-inside pt ptlst (apply 'max l_dis)) ) ;;; Lisp stretch vertexes's lwpolyline inside a window to line ;; by Trân Thiêp, tel: 0918841230 (defun c:trev (/ p1 p2 porect enttemp ss entLine enttempLWP p1 p2 p3 p4 entlst obj orthomode_o L1 lstpo vlapt poner ) (setq acadObj (vlax-get-acad-object) doc (vla-get-ActiveDocument acadObj) *Model* (vla-get-ModelSpace doc) ) (defun *error* (msg) (or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*") (princ (strcat "\n** Error: " msg " **")) ) (acet-sysvar-restore) (vla-EndUndoMark doc) (princ) ) (vla-StartUndoMark doc) (acet-sysvar-set (list "cmdecho" 0 "osmode" 0)) (setq orthomode_o (getvar "ORTHOMODE")) (setq p1 (getpoint "\nPick point1 window: ") p2 (getcorner p1 "\nPick point2 corner: ") ) (setq ss (ssget "_C" p1 p2 '((0 . "*POLYLINE")))) (setq porect (acet-geom-rect-points p1 p2)) (setvar "ORTHOMODE" 1) (setq p3 (getpoint "\nPick startpoint line: ") p4 (getpoint p3 "\nPick endpoint line: ") ) (setq entLine (emLINE p3 p4)) (setvar "ORTHOMODE" orthomode_o) (setq l1 nil) (setq vlapt (vlax-make-safearray vlax-vbdouble '(0 . 1))) (setq entlst (acet-ss-to-list ss)) (if entlst (progn (foreach ent entlst (setq L1 nil) (setq obj (vlax-ename->vla-object ent)) (setq lstpo (acet-geom-vertex-list ent)) (foreach po lstpo (if (PointInside po porect) (progn (setq poner (vlax-curve-getClosestPointTo entLine po T)) (vlax-safearray-fill vlapt (list (car poner) (cadr poner))) (vla-put-Coordinate obj (fix (vlax-curve-getParamAtPoint ent po)) vlapt ) ) ) ) ) (acet-sysvar-restore) (vla-EndUndoMark doc) (princ "\nOk") ) ) (princ) ) Quá tuyệt vời, ko những theo phương x, phương y, mà còn cả phương chéo, vượt mong đợi, thanks a Thiệ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
Doan Nguyen Van 491 Báo cáo bài đăng Đã đăng Tháng 7 25, 2021 Vào lúc 24/7/2021 tại 14:05, DungNguyen685 đã nói: Vì mấy anh chia sẻ rồi em cũng thử bằng cách nêu lúc đầu. Chứ không có ý làm ảnh hưởng đến bác @Doan Nguyen Van nhé! str.lsp [✎] (defun getVert (e / i L) ;;;Return list of all vertex from pline e (setq i 0 L nil) (vl-load-com) (repeat (fix (+ (vlax-curve-getEndParam e) 1)) (setq L (append L (list (vlax-curve-getPointAtParam e i)))) (setq i (1+ i)) ) L ) (defun c:STR(/ ent p1 cmd osm L diem1 diem2 diem3 diem4 diem5 diem6 diem7 kc1 kc2 L1 L2 L3 gt1 gt2 gt3 list1 list2 doan1 doan2 doan3 doan4 doan5 doan6 doan7 doan8 sset k lay1 lay2 lay3 lay4 lay5 lay6 ssetz ) (prompt "Chon doi tuong muon STRETCH") (setq ent (car (entsel))) (setq p1 (getpoint "\nChon diem muon STRETCH den:")) (command ".undo" "BE") (setq cmd (getvar "CMDECHO")) (setq osm (getvar "OSMODE")) (setvar "CMDECHO" 0) (setvar "OSMODE" 0) (setq L (getvert ent)) (setq L (vl-sort L '(lambda (x y) (> (cadr x)(cadr y))))) (setq diem1 (car (nth 0 L))) (setq diem2 (car (nth 1 L))) (setq diem3 (cadr (nth 0 L))) (setq diem4 (cadr (nth 1 L))) (setq diem5 (car p1) ) (setq diem6 (list diem5 diem3 )) (setq diem7 (list diem5 diem4 )) (setq kc1 (distance (nth 0 L) diem6)) (setq kc2 (distance (nth 1 L) diem7)) (setq L1 nil ) (setq L2 nil ) (setq L3 nil ) (setq j 0) (if (< diem1 diem2) (progn ;(alert "loaij1") (if (< kc1 kc2) (progn ;(alert "trai") (while (< j (length L) ) (setq gt1 (/ (atof (itoa j)) 2)) (setq gt2 (fix gt1)) (setq gt3 (- gt1 gt2)) (if (= gt3 0) (progn (setq list1 (nth j L)) (setq L1 (append L1 (list list1))) ) (progn (setq list2 (nth j L)) (setq L2 (append L2 (list list2))) ) ) (setq j (1+ j)) ) ) ) (if (> kc1 kc2) (progn ;(alert "phai") (while (< j (length L) ) (setq gt1 (/ (atof (itoa j)) 2)) (setq gt2 (fix gt1)) (setq gt3 (- gt1 gt2)) (if (/= gt3 0) (progn (setq list1 (nth j L)) (setq L1 (append L1 (list list1))) ) (progn (setq list2 (nth j L)) (setq L2 (append L2 (list list2))) ) ) (setq j (1+ j)) ) ) ) ) (progn ;(alert "loaij2") (if (< kc1 kc2) (progn ;(alert "phai") (while (< j (length L) ) (setq gt1 (/ (atof (itoa j)) 2)) (setq gt2 (fix gt1)) (setq gt3 (- gt1 gt2)) (if (= gt3 0) (progn (setq list1 (nth j L)) (setq L1 (append L1 (list list1))) ) (progn (setq list2 (nth j L)) (setq L2 (append L2 (list list2))) ) ) (setq j (1+ j)) ) ) ) (if (> kc1 kc2) (progn ;(alert "trai") (while (< j (length L) ) (setq gt1 (/ (atof (itoa j)) 2)) (setq gt2 (fix gt1)) (setq gt3 (- gt1 gt2)) (if (/= gt3 0) (progn (setq list1 (nth j L)) (setq L1 (append L1 (list list1))) ) (progn (setq list2 (nth j L)) (setq L2 (append L2 (list list2))) ) ) (setq j (1+ j)) ) ) ) ) ) (setq k 0) (while (< k (length L1) ) (setq doan1 (nth k L1)) (setq doan6 (car p1) ) (setq doan7 (cadr (nth k L1))) (setq doan8 (list doan6 doan7 0.0) ) (setq doan2 (polar doan1 0 1)) (setq doan3 (polar doan1 0 -1)) (setq doan4 (polar doan2 (/ pi 2) 1)) (setq doan5 (polar doan3 (/ pi 2) -1)) (setq sset (ssget "_C" doan5 doan4 '((0 . "*POLYLINE")))) (setq kc2 (distance doan1 doan8)) (command "stretch" sset "" doan1 doan8) (setq k (1+ k)) ) ;(setq lay1 (nth 0 L1)) ;(setq lay2 (nth (- (length L1) 1) L1)) ;(setq lay3 (polar lay1 (/ pi 2) 10)) ;(setq lay4 (polar lay2 (/ pi 2) -10)) ;(setq lay5 (polar lay3 0 10)) ;(setq lay6 (polar lay4 0 -10)) ;(setq ssetz (ssget "_C" lay5 lay6 '((0 . "*POLYLINE")))) ;(command "stretch" ssetz "" lay1 pause) (setvar "CMDECHO" cmd) (setvar "OSMODE" osm) (command ".undo" "E") (princ) ) Nay mới đọc thấy cmt này, bạn cứ thoải mái. Bạn chủ topic có nhắn mình rồi, nhưng bạn ấy bảo chỉ hỏi cho biết thôi chứ không biết áp dụng vào trường hợp cụ thể nào. Vậy nên các bạn thảo luận xem dùng nó vào vấn đề gì cho hợp lý 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
NTHAHT 83 Báo cáo bài đăng Đã đăng Tháng 7 25, 2021 15 phút trước, Doan Nguyen Van đã nói: Nay mới đọc thấy cmt này, bạn cứ thoải mái. Bạn chủ topic có nhắn mình rồi, nhưng bạn ấy bảo chỉ hỏi cho biết thôi chứ không biết áp dụng vào trường hợp cụ thể nào. Vậy nên các bạn thảo luận xem dùng nó vào vấn đề gì cho hợp lý thôi Theo mình mang tính giải trí... hí hí hí... 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
alisp 72 Báo cáo bài đăng Đã đăng Tháng 7 25, 2021 19 phút trước, NTHAHT đã nói: Theo mình mang tính giải trí... hí hí hí... Giải trí mà nhiều người tham gia quá nhỉ, chắc do covid bị cấm cung ở nhà bùn wé viết cho vui thôi chứ chẳng có mục đích gì ráo! 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