Trang chủ
Giới thiệu
Tìm kiếm
1
Automation Studio 5.0 Full Crack
183 lượt xem
2
Harris's shock and vibration handbook
42 lượt xem
3
Autodesk Autocad 2007 Full Crack
26 lượt xem
4
Một số lệnh thiết lập khung tên
22 lượt xem
5
lisp tạo thước đo góc
11 lượt xem
Tài liệu học thuật
Phần mềm kỹ thuật
App script
Autodesk
Office
Matlab
Modelica
Đăng nhập
Tìm kiếm
Từ khóa tìm kiếm
autocad
inventor
ilogic
autolisp
mô phỏng
vba
cad/cam
model 3d
Lab302 libraries
Đăng nhập
-
Đăng ký
Có
14
bài viết
Có
0
bình luận
Trang chủ
Danh mục
Tài liệu học thuật
Phần mềm kỹ thuật
App script
Autodesk
Office
Matlab
Modelica
Trang
Giới thiệu
admin
(
14
bài viết)
2025-08-02
lisp cập nhật các trường dữ liệu trong nhiều layout
Áp dụng cho các trường bảng tạo bởi lệnh TABLE và trường dữ liệu tạo bởi lệnh ATT . Dùng để thay đổi dữ liệu trong tất cả các layout (thực hiện hàng loạt).;; Cập nhật trường toàn bộ bảng trong các layout (defun c:table_update ( / layname ) (vl-load-com) (setq doc (vla-get-ActiveDocument (vlax-get-acad-object))) ;; Lặp qua tất cả layout (vlax-for lay (vla-get-Layouts doc) (setq layname (vla-get-Name lay)) (if (not (wcmatch (strcase layname) "*MODEL*")) ; bỏ qua Model nếu muốn (progn (vla-put-ActiveLayout doc lay) (command "_.UPDATEFIELD" "_ALL" "") ) ) ) ;; Cuối cùng về lại layout ban đầu (princ "\nĐã cập nhật tất cả Field ở mọi layout.") (princ) )
02-08-2025
9
0
0
2025-08-02
Một số lệnh thiết lập khung tên
DWGPROPS = tùy biến properties của file hiện tại. Sau đó có thể thêm vào value của ATT, ví dụ:tên dự án: %<\AcVar CustomDP.tenduan \f "%tc1">%ATT = tùy biến các biến trong blocks (biểu mẫu thông số). Có thể thêm các trường, ví dụ:scale: %<\AcObjProp Object(%<\_ObjId 2903202917376>%).StandardScale2 \f "%en0">%sheetset number: %<\AcSm Sheet.Number>%sheetset title: %<\AcSm Sheet.Title>%Nhóm các khối block:wblock = ghi lại block động block = ghi lại block tĩnh bedit = chỉnh sửa block động/tĩnh refedit = chỉnh sửa block tĩnh
02-08-2025
22
0
0
2025-07-25
lisp tạo thước đo góc
Thực ra cái này thì bạn có thể hoàn toàn tạo được bằng lệnh ARRAYPOLAR nhưng việc đánh số khá mất thì giờ; vậy nên bạn có thể tham khảo lisp này.(defun c:angle360 ( / pt r ang p x y txt) (setq pt (getpoint "\nChọn tâm đường tròn: ")) ; Tâm đường tròn (setq r (getreal "\nNhập bán kính đặt số: ")) ; Khoảng cách ra ngoài (setq ang 0) ; Bắt đầu từ góc 0 độ (repeat 36 (setq p (* pi (/ ang 180.0))) ; Chuyển độ sang radian (setq x (+ (car pt) (* r (cos p)))) (setq y (+ (cadr pt) (* r (sin p)))) (setq txt (strcat "GOC=" (itoa ang))) (command "TEXT" (list x y) "0" "5" "0" txt) (setq ang (+ ang 10)) ; Tăng lên 10 độ mỗi bước ) (princ "\nĐã đánh số đủ số góc quanh đường tròn.") (princ) )Để sử dụng lisp này, bạn cần tạo thêm 1 file txt ngang hàng với file này có nội dung dạng:GOC=0 GOC=10 GOC=20 GOC=30 GOC=40 GOC=50 GOC=60 ... GOC=350Cuối cùng, thực hiện lệnh angle360 để vẽ thước đo góc 360deg
25-07-2025
11
0
0
2025-07-25
lisp đổi tên block cho tất cả các block có cùng tên
Lưu code sau vào file .lsp => sau đó vào autocad nhập lệnh APPLOAD với chế độ always để load lisp này vào.Để sử dụng, vui lòng nhập lệnh block_rename , hoặc bạn có thể đổi tên hàm thành chuỗi dễ nhớ hơn.;; Rename block (defun c:block_rename (/ find replace blocks blkName newname) ;; Input (setq find (getstring "\nNhập tiền tố ban đầu (vd: EL_TE-): ")) (setq replace (getstring "\Nhập tiền tố sau khi thay thế (vd: ME_TE-): ")) ;; Duyệt tất cả block definitions (setq blocks (tblnext "BLOCK" T)) (while blocks (setq blkName (cdr (assoc 2 blocks))) ;; Bỏ qua block ẩn hoặc xref (if (and (/= (logand (cdr (assoc 70 blocks)) 1) 1) (wcmatch blkName (strcat find "*"))) (progn ;; str_replace (setq newname (vl-string-subst replace find blkName)) ;; Gọi lệnh RENAME của autocad (princ (strcat "\nRenaming: " blkName " -> " newname)) (command "_.RENAME" "Block" blkName newname) ) ) ;; next block (setq blocks (tblnext "BLOCK")) ) (princ "\nHoàn tất.") (princ) )
25-07-2025
9
0
0
2025-07-25
iLogic tính một số thông số đặc trưng hình học
Dim doc = ThisDoc.Document Dim oCD As ComponentDefinition = doc.ComponentDefinition Dim oCommandMgr As CommandManager = ThisApplication.CommandManager ' Chọn mặt phẳng Dim oFace As Face = oCommandMgr.Pick(SelectionFilterEnum.kPartFacePlanarFilter, "Chọn mặt phẳng phẳng") If oFace Is Nothing Then Exit Sub ' Tạo sketch trên mặt phẳng đã chọn Dim oSk As PlanarSketch = oCD.Sketches.Add(oFace) oSk.Edit() ' Thực thi lệnh ProjectCutEdgesCmd oCommandMgr.ControlDefinitions("SketchProjectCutEdgesCmd").Execute() ' Lấy profile và tính diện tích, các momen quán tính Dim oProfile As Profile = oSk.Profiles.AddForSolid Dim dArea_cm2 As Double = oProfile.RegionProperties.Area Dim adPrincipalMoments(2) As Double oProfile.RegionProperties.PrincipalMomentsOfInertia( _ adPrincipalMoments(0), _ ' Ix (Moment quán tính quanh trục X) adPrincipalMoments(1), _ ' Iy (Moment quán tính quanh trục Y) adPrincipalMoments(2)) ' Ixy (Moment quán tính chéo) ' Tìm giới hạn x và y từ các điểm sketch Dim minX As Double = Double.MaxValue Dim maxX As Double = Double.MinValue Dim minY As Double = Double.MaxValue Dim maxY As Double = Double.MinValue For Each pt As SketchPoint In oSk.SketchPoints If pt.Geometry.X < minX Then minX = pt.Geometry.X If pt.Geometry.X > maxX Then maxX = pt.Geometry.X If pt.Geometry.Y < minY Then minY = pt.Geometry.Y If pt.Geometry.Y > maxY Then maxY = pt.Geometry.Y Next ' Tính tọa độ trọng tâm (centroid) và chuyển đổi sang mm Dim centroid As Point2d = oProfile.RegionProperties.Centroid Dim cX_cm As Double = centroid.X Dim cY_cm As Double = centroid.Y Dim cX_mm As Double = cX_cm * 10 Dim cY_mm As Double = cY_cm * 10 ' Tính diện tích Dim dArea_mm2 As Double = dArea_cm2 * 100 ' cm² → mm² ' Tính khoảng cách từ trọng tâm đến điểm xa nhất theo trục X và Y Dim maxDistX As Double = Math.Max(Math.Abs(maxX - cX_cm), Math.Abs(minX - cX_cm)) * 10 ' Đoạn đường xa nhất theo trục X (mm) Dim maxDistY As Double = Math.Max(Math.Abs(maxY - cY_cm), Math.Abs(minY - cY_cm)) * 10 ' Đoạn đường xa nhất theo trục Y (mm) ' Tính các momen quán tính theo mm² và mm⁴ Dim Ix_mm4 As Double = adPrincipalMoments(0) * 10000 ' cm⁴ → mm⁴ Dim Iy_mm4 As Double = adPrincipalMoments(1) * 10000 ' cm⁴ → mm⁴ ' Tính momen kháng uốn Wx và Wy Dim Wx_mm3 As Double = Ix_mm4 / maxDistY ' mm³ Dim Wy_mm3 As Double = Iy_mm4 / maxDistX ' mm³ ' Hiển thị kết quả trong hộp thoại MsgBox ("Diện tích: " & Round(dArea_mm2, 2) & " mm²" & vbCrLf & _ "Tọa độ trọng tâm: (" & Round(cX_mm, 2) & ", " & Round(cY_mm, 2) & ") mm" & vbCrLf & _ "Khoảng cách từ trục trung hòa:" & vbCrLf & _ "- Tới điểm xa nhất theo trục X: " & Round(maxDistX, 2) & " mm" & vbCrLf & _ "- Tới điểm xa nhất theo trục Y: " & Round(maxDistY, 2) & " mm" & vbCrLf & _ "Ix: " & Round(Ix_mm4, 2) & " mm⁴" & vbCrLf & _ "Iy: " & Round(Iy_mm4, 2) & " mm⁴" & vbCrLf & _ "Wx: " & Round(Wx_mm3, 2) & " mm³" & vbCrLf & _ "Wy: " & Round(Wy_mm3, 2) & " mm³", vbInformation, "iLogic Đặc trưng hình học:")
25-07-2025
8
0
0
1
2
3