đặng phụng 5 Báo cáo bài đăng Đã đăng Tháng 9 28, 2017 nhờ các ace trên diễn đàn giúp mình 1 lisp đối xứng đối tượng chọn, giống như dùng lệnh Mirro chọn yes vậy -gõ lệnh -chọn đối tượng đối xứng -chọn điểm đối xứng -kết thúc cảm ơn các anh em 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
huunhantvxdts 195 Báo cáo bài đăng Đã đăng Tháng 9 28, 2017 3 giờ trước, đặng phụng cho biết: nhờ các ace trên diễn đàn giúp mình 1 lisp đối xứng đối tượng chọn, giống như dùng lệnh Mirro chọn yes vậy -gõ lệnh -chọn đối tượng đối xứng -chọn điểm đối xứng -kết thúc cảm ơn các anh em nhiều. Quá khó cho 1 yêu cầu???? Phải có thêm 1 phương nữa mới làm đượ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
đặng phụng 5 Báo cáo bài đăng Đã đăng Tháng 9 30, 2017 Bác cứ cho e phương nằm ngang đi bác. 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
Danh Cong 424 Báo cáo bài đăng Đã đăng Tháng 9 30, 2017 Mình hỏi ngu tí: Mục đích lisp theo yêu cầu của bạn là gì? Chẳng lẽ bớt thao tác đi 1 lần gõ "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
đặng phụng 5 Báo cáo bài đăng Đã đăng Tháng 10 1, 2017 mình muốn đối xứng mũi tên có ghi chú text cho nhanh í mà, dùng lệnh mirro cũng được thôi nhưng phải bấm chọn thêm lựa chọn yes rồi bấm enter nữa nhiều thao tác khi vẽ quá. Bạn giỏi về lisp giúp mình và mọi người trên diễn đàn với, mình nghỉ có rất nhiều người cần lisp này khi vẽ đấ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 Van Ha 3208 Báo cáo bài đăng Đã đăng Tháng 10 1, 2017 Nè vua làm biếng! (defun C:MR() (command "mirror" (ssget) "" (setq p (getpoint "\nPick point: ")) (list (+ (car p) 1.0) (cadr p)) "y") (princ)) 2 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
đặng phụng 5 Báo cáo bài đăng Đã đăng Tháng 10 1, 2017 Hic bác nói cũng đúng, thank bác Ha nhiều nha. 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
đặng phụng 5 Báo cáo bài đăng Đã đăng Tháng 10 1, 2017 ôi bác Ha ơi lisp bác viết chỉ đối xứng theo trục ngang thôi,cái e cần là đối xứng theo trục đứ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
Danh Cong 424 Báo cáo bài đăng Đã đăng Tháng 10 1, 2017 Tìm chỗ mà thay (list (car p) (+ (cadr p) 1.0)) 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
copvan0204 3 Báo cáo bài đăng Đã đăng Saturday tại 02:25 Mình cũng đang cần yêu cầu tương tự thế này. Tuy nhiên muốn phát triển ý tưởng thêm một chút dùng cho hàng loạt: - Chọn hàng loạt đối tượng - chọn phương (bằng cách pick đường thẳng hoặc 2 điểm) - lisp tự mirror các đối tượng, lấy tâm là tâm của từng đối tượng riêng đó với phương là mình đã chọn ở trên. Mục đích là lật hàng loạt các đối tượng theo phương mình chọn nhưng các đối tượng đó vẫn tương đối ở nguyên vị trí đó, tâm của các đối tượng con đó không thay đổ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
copvan0204 3 Báo cáo bài đăng Đã đăng Saturday tại 02:27 Vào lúc 1/10/2017 tại 11:52, Doan Van Ha đã nói: Nè vua làm biếng! (defun C:MR() (command "mirror" (ssget) "" (setq p (getpoint "\nPick point: ")) (list (+ (car p) 1.0) (cadr p)) "y") (princ)) Vào lúc 1/10/2017 tại 20:00, Danh Cong đã nói: Tìm chỗ mà thay (list (car p) (+ (cadr p) 1.0)) Nhờ các bác phát triển ý tưởng của lisp này thêm được không, mình tìm trên mạng cả tuần nay rồi nhưng chưa tìm được lisp nào như thế này được cả. - Chọn hàng loạt đối tượng - chọn phương (bằng cách pick đường thẳng hoặc 2 điểm) - lisp tự mirror các đối tượng, lấy tâm là tâm của từng đối tượng riêng đó với phương là mình đã chọn ở trên. Mục đích là lật hàng loạt các đối tượng theo phương mình chọn nhưng các đối tượng đó vẫn tương đối ở nguyên vị trí đó, tâm của các đối tượng con đó không thay đổ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
copvan0204 3 Báo cáo bài đăng Đã đăng Saturday tại 02:45 Mình nghĩ nó cũng tương tự lisp Scale tại tâm này. Tuy nhiên mình dốt lisp quá nên không biết sửa kiểu gì. Nhờ các cao nhân giúp đỡ. (defun C:SAC (/ *error* cmde ss inc ent) (defun *error* (errmsg) (if (not (wcmatch errmsg "Function cancelled,quit / exit abort,console break")) (princ (strcat "\nError: " errmsg)) ); end if (command "_.undo" "_end") (setvar 'cmdecho cmde) (princ) ); end defun - *error* (setq cmde (getvar 'cmdecho)) (setvar 'cmdecho 0) (command "_.undo" "_begin") (setq *SACscl (cond ( (getreal (strcat "\nEnter Scale Factor <" (if *SACscl (rtos *SACscl 2 4) "1"); offer default: prior value / 1 on first use ">: " ); strcat ); getreal ); User-input condition (*SACscl); Enter on subsequent use [prior value] (1); Enter on first use ); cond & *SACscl ss (ssget ":L" '((-4 . "<NOT") (0 . "RAY,XLINE") (-4 . "NOT>"))) ;; not objects on Locked Layers or without finite extents ); setq (repeat (setq inc (sslength ss)) (setq ent (ssname ss (setq inc (1- inc)))) (vla-getboundingbox (vlax-ename->vla-object ent) 'minpt 'maxpt) (command ".scale" ent "" "_none" (mapcar '/ ; midpoint of bounding box (mapcar '+ (vlax-safearray->list minpt) (vlax-safearray->list maxpt)) '(2 2 2) ); mapcar *SACscl ); command ); repeat (command "_.undo" "_end") (setvar 'cmdecho cmde) (princ) ); defun (vl-load-com) (prompt "\nType SAC to Scale objects About each one's Center.") 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
conghoa 136 Báo cáo bài đăng Đã đăng ngày hôm qua lúc 09:11 (defun C:MIRRORCENTER (/ *error* cmde osmode ss inc ent minpt maxpt center axis point2) ;; Ham xu ly loi (defun *error* (errmsg) (if (not (wcmatch errmsg "Function cancelled,quit / exit abort,console break")) (princ (strcat "\nLoi: " errmsg)) ) (command-s "_.undo" "_end") ; Ket thuc undo (setvar 'cmdecho cmde) ; Khoi phuc trang thai cmdecho (setvar 'osmode osmode) ; Khoi phuc trang thai osnap (princ) ) ;; Luu gia tri ban dau cua cmdecho va osnap (setq cmde (getvar 'cmdecho)) (setq osmode (getvar 'osmode)) ; Luu trang thai osnap hien tai (setvar 'cmdecho 0) (setvar 'osmode 0) ; Tat che do truy bat diem de tranh loi ;; Bat dau undo (command-s "_.undo" "_begin") ;; Yeu cau nguoi dung chon truc phan chieu (setq axis (getstring "\nNhap truc phan chieu (X/Y): ")) (setq axis (strcase axis)) ; Chuyen ve chu in hoa de so sanh ;; Kiem tra xem nguoi dung co chon truc hop le khong (if (not (member axis '("X" "Y"))) (progn (princ "\nTruc khong hop le. Hay nhap X hoac Y.") (command-s "_.undo" "_end") (setvar 'cmdecho cmde) (setvar 'osmode osmode) (princ) (exit) ) ) ;; Loc doi tuong, khong chon cac doi tuong bi khoa (setq ss (ssget ":L" '((-4 . "<NOT") (0 . "RAY,XLINE") (-4 . "NOT>")))) (if ss ; Kiem tra neu tap hop doi tuong khong rong (progn ;; Lap qua cac doi tuong trong tap hop duoc chon (repeat (setq inc (sslength ss)) (setq ent (ssname ss (setq inc (1- inc)))) ; Lay tung doi tuong (vla-getboundingbox (vlax-ename->vla-object ent) 'minpt 'maxpt) ; Lay bounding box (setq center ; Tinh tam cua bounding box (mapcar '/ (mapcar '+ (vlax-safearray->list minpt) (vlax-safearray->list maxpt)) '(2 2 2) ) ) ;; Tao diem thu hai dua tren truc phan chieu (setq point2 (cond ((equal axis "X") ; Truc X: dich chuyen nhe theo X (list (+ (car center) 0.1) (cadr center) (caddr center)) ) ((equal axis "Y") ; Truc Y: dich chuyen nhe theo Y (list (car center) (+ (cadr center) 0.1) (caddr center)) ) ) ) ;; Thuc hien lenh mirror qua tam (command-s "_.mirror" ent "" center ; Diem dau tien (tam) point2 ; Diem thu hai "_N" ; Khong giu lai ban goc ) ) ;; Hoan tat lenh (princ "\nPhan chieu doi xung qua tam da hoan tat.") ) (progn (princ "\nKhong co doi tuong hop le duoc chon.") ) ) ;; Ket thuc undo va khoi phuc trang thai ban dau (command-s "_.undo" "_end") (setvar 'cmdecho cmde) (setvar 'osmode osmode) ; Khoi phuc osnap (princ) ; Ket thuc lenh luon ) (vl-load-com) (prompt "\nGoi MIRRORCENTER de phan chieu doi xung qua tam.") Sau một hồi loay hoay với con AI thì nó cũng viết được đoạn này đáp ứng yêu cầu Mirror đối tượng qua tâm theo yêu cầu của bạn. Tuy có thấy cái đoạn osnap nó cứ kỳ kỳ mà ko biết lisp nên để vậy :D 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