乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 98|回复: 12

[编程交流] 快速dimlinear?

[复制链接]

5

主题

11

帖子

6

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-6 08:22:31 | 显示全部楼层 |阅读模式
完成绘制对象时。现在使用“dimlinear”
到(逐点2)重复多次。输入/显示结果。
是否可以一批完成全部“dimlinear”?
 
有什么想法吗!
092237bpnxx610aqqe6gpq.jpg
回复

使用道具 举报

1

主题

1069

帖子

1050

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2022-7-6 08:29:29 | 显示全部楼层
 
选择需要替代的所有标注
通过窗口或使用您想要的其他方法
 
  1. (defun C:DMO (/ diment elist sel)
  2. (prompt "\n\t\t***\tSELECT DIMENSIONS\t***")  
  3. (if
  4. (setq sel (ssget ":L" (list (cons 0 "DIMENSION"))))
  5. (while (setq diment (ssname sel 0))
  6. (setq elist (entget diment))
  7. (entmod (subst (cons 1 "<>CM")(assoc 1 elist) elist))
  8. (entupd diment)
  9. (ssdel diment sel)
  10. )
  11. )
  12. (princ)
  13. )
  14. (prompt "\n\t\t***\tType DMO to execute\t***")
  15. (princ)

 
~'J'~
回复

使用道具 举报

5

主题

11

帖子

6

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-6 08:34:27 | 显示全部楼层
对不起,我不能?
 
 
我的步骤是:
加载应用程序
加载名称“dmo.lsp”
重新启动
 
键盘:Ctrl+A
dmo公司
 
***选择维度***找到0?
 
选择对象?
 
这是我的dwt文件。
re1.dwg
回复

使用道具 举报

1

主题

1069

帖子

1050

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2022-7-6 08:42:17 | 显示全部楼层
 
试试这个
  1. ;;======== rectangles dimensioning ===========;
  2. (defun C:RD (/ coors diment gap hgt p1 p2 p3 p4 pmid1 pmid2
  3.        pmid3 pmid4 px1 px2 px3 px4 sel xmax xmin ymax ymin)
  4. (command "_undo" "be")
  5. (setq hgt (getvar "dimtxt"))
  6. (if (zerop hgt)(setq hgt 0.18))
  7.      (setq gap (* hgt 2))
  8. (prompt "\n\t\t***\tSelect all rectangles\t***")
  9. (if
  10. (setq sel (ssget "_:L" (list (cons 0 "LWPOLYLINE")(cons 90 4)(cons 70 1))))
  11. (while (setq diment (ssname sel 0))
  12. (setq coors (vl-remove-if (function not)
  13.       (mapcar
  14.         (function (lambda(x)
  15.         (if (= 10 (car x))
  16.           (cdr x))))
  17.               (entget diment))))
  18.    
  19. (setq xmin (apply 'min (mapcar 'car coors))
  20.      xmax (apply 'max (mapcar 'car coors))
  21.      ymin (apply 'min (mapcar 'cadr coors))
  22.      ymax (apply 'max (mapcar 'cadr coors))
  23.      )
  24.    
  25. (setq p1 (list xmin ymin)
  26.      p2 (list xmax ymin)
  27.      p3 (list xmax ymax)
  28.      p4 (list xmin ymax)
  29.      
  30.      pmid1 (mapcar (function (lambda(a b)(/ (+ a b) 2))) p1 p2)
  31.      px1 (polar pmid1 (+ (angle p1 p2)(/ pi 2)) gap)
  32.      pmid2 (mapcar (function (lambda(a b)(/ (+ a b) 2))) p2 p3)
  33.      px2 (polar pmid2 (+ (angle p2 p3)(/ pi 2)) gap)
  34.      pmid3 (mapcar (function (lambda(a b)(/ (+ a b) 2))) p3 p4)
  35.      px3 (polar pmid3 (+ (angle p3 p4)(/ pi 2)) gap)
  36.      pmid4 (mapcar (function (lambda(a b)(/ (+ a b) 2))) p4 p1)
  37.      px4 (polar pmid4 (+ (angle p4 p1)(/ pi 2)) gap)
  38.      )
  39.    
  40. (command "_dimlinear" "_non" p1  "_non" p2  "_non" px1)
  41.    (vl-cmdf "dimoverride" "dimpost" "CM" "" "L" "")
  42. ;;;(command "_dimlinear"  "_non" p2  "_non" p3  "_non" px2)
  43. ;;;    (vl-cmdf "dimoverride" "dimpost" "CM" "" "L" "")   
  44. ;;;(command "_dimlinear"  "_non" p3  "_non" p4  "_non" px3)
  45. ;;;    (vl-cmdf "dimoverride" "dimpost" "CM" "" "L" "")
  46. (command "_dimlinear"  "_non" p1  "_non" p4  "_non" px4)
  47. (vl-cmdf "dimoverride" "dimpost" "CM" "" "L" "")
  48.    (ssdel diment sel)
  49. )
  50. )
  51. (command "_undo" "e")
  52. (princ)
  53. )
  54. (prompt "\n\t\t***\tType RD to execute\t***")
  55. (princ)

 
~'J'~
回复

使用道具 举报

41

主题

301

帖子

265

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
209
发表于 2022-7-6 08:45:09 | 显示全部楼层
与重新启动autocad相同?还是重新打开文件?
回复

使用道具 举报

3

主题

17

帖子

14

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 08:49:30 | 显示全部楼层
尊敬的各位:,
我已将此lsp复制到我的绘图中,然后使用命令RD进行了尝试。它向我发出消息“6已过滤掉”,但我看不到我的绘图有任何变化。。请帮帮我。。。。
回复

使用道具 举报

3

主题

17

帖子

14

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-6 08:57:32 | 显示全部楼层
O、 我犯了一个错误。它适用于矩形。但是现在我想用这种类型的lisp来表示一个用line命令生成的矩形。因此,所有四条边的尺寸都应该写在各自的直线附近。。。。。
回复

使用道具 举报

41

主题

301

帖子

265

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
209
发表于 2022-7-6 09:00:38 | 显示全部楼层
如果你亲自尝试,你会收获更多。这很简单。
 
查看“极轴”和“角度”函数,以获得尺寸的正确偏移
回复

使用道具 举报

41

主题

301

帖子

265

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
209
发表于 2022-7-6 09:04:57 | 显示全部楼层
嗯,这可能是因为不确定如何从左/右和顶部/底部过滤点。
 
 
  1. (defun C:PolyD
  2.       (/ ENT_PL INT_COUNT INT_POS LST_PTS REAL_DS SS_PL
  3. ;Subs
  4. )
  5.   (setvar "cmdecho" 0)
  6.   (vl-cmdf "_undo" "be")
  7.   (setq Real_Ds (getvar "DimScale"))
  8.   (if (zerop Real_Ds)
  9.   (setq Real_Ds 1))
  10.   (prompt "\nSelect polyline")
  11.   (while (not (setq SS_Pl (ssget  "_:S" '((0 . "LWPOLYLINE"))))))
  12.   (setq Ent_PL (entget (ssname SS_Pl 0.0)))
  13.   (if (> (cdr (assoc 70 Ent_PL)) 1)(progn(princ "It can not have arc's")(exit)))
  14.   (setq Int_Count 0)
  15.   (setq Int_Pos (vl-position (assoc 10 Ent_PL) Ent_PL))
  16.   (setq Lst_Pts (list (list  (cdr (nth Int_Pos Ent_PL)) (cdr (nth (setq Int_Pos (+ 5 Int_Pos)) Ent_PL)))))
  17.   (while (not (eq (assoc 210 Ent_PL)(nth (+ 5 Int_Pos) Ent_PL)))
  18.    (setq Lst_Pts (append Lst_Pts (list (list  (cdr (nth Int_Pos Ent_PL)) (cdr (nth (setq Int_Pos (+ 5 Int_Pos)) Ent_PL)))))))
  19. ;(if (= (cdr (assoc 70 Ent_PL)) 0)
  20.   (setq Lst_Pts (append Lst_Pts (list (list  (cdr (nth Int_Pos Ent_PL)) (car (car Lst_Pts))))))
  21.   (foreach Lst_Pair Lst_Pts
  22.   (cond
  23.     ((= (car (car Lst_Pair)) (car (cadr Lst_Pair))) ;Horizonal
  24.      (command "_DIMLINEAR" (car Lst_Pair) (cadr Lst_Pair) (polar (car Lst_Pair) (* pi -0.5 ) (* Real_Ds 10))))
  25.     ((= (cadr (car Lst_Pair))(cadr (cadr Lst_Pair))) ;Vertical
  26.      (command "_DIMLINEAR" (car Lst_Pair) (cadr Lst_Pair) (polar (car Lst_Pair) 0.0 (* Real_Ds 10))))
  27.     (t ; Angled
  28.       (command "_DIMALIGNED"(car Lst_Pair) (cadr Lst_Pair) (polar (car Lst_Pair) (+ (angle (car Lst_Pair) (cadr Lst_Pair) )(* pi -0.5)) (* Real_Ds 10)))
  29.       (command "_DIMLINEAR" (car Lst_Pair) (cadr Lst_Pair) (polar (car Lst_Pair) (* pi -0.5 ) (* Real_Ds 10)))
  30.       (command "_DIMLINEAR" (car Lst_Pair) (cadr Lst_Pair) (polar (car Lst_Pair) 0.0 (* Real_Ds 10)))
  31.      )
  32.   )
  33. )
  34.   (setvar "cmdecho" 1)
  35.   (vl-cmdf "_undo" "end")
  36. (princ)
  37. )
回复

使用道具 举报

1

主题

1069

帖子

1050

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2022-7-6 09:10:25 | 显示全部楼层
 
这是我的老歌,所以不要笑
 
  1. ;;========= rectangle dimensioning ===========;
  2. (defun C:DRE (/ coors en off p1 p2 p3 p4  pmid1 pmid2 pmid3 pmid4
  3.         pt px1 px2 px3 px4 xmax xmin ymax ymin)
  4. (command "._ucs" "_w")
  5. (initget 6)
  6. (setq off (getdist "\nEnter offset distance for dimensions : "))
  7. ; you can use selection instead here:
  8. ;;;  (while (setq ent (entsel "\nSelect rectangle (or press Enter to Exit) >>"))
  9. ;;;    (setq en (car ent))
  10. (while (setq pt (getpoint "\nPick first corner point (or press Enter to Exit) >>"))
  11. (command "_rectangle" pt pause)
  12. (setq en (entlast))
  13. (setq        coors (vl-remove-if
  14.         (function not)
  15.         (mapcar
  16.           (function (lambda (x)
  17.                       (if (= 10 (car x))
  18.                         (cdr x))))
  19.           (entget en))))
  20. (setq        xmin (apply 'min (mapcar 'car coors))
  21. xmax (apply 'max (mapcar 'car coors))
  22. ymin (apply 'min (mapcar 'cadr coors))
  23. ymax (apply 'max (mapcar 'cadr coors))
  24. )
  25. (setq        p1    (list xmin ymin)
  26. p2    (list xmin ymax)
  27. p3    (list xmax ymax)
  28. p4    (list xmax ymin)
  29. pmid1 (mapcar (function (lambda (a b) (/ (+ a b) 2))) p1 p2)
  30. px1   (polar pmid1 (+ (angle p1 p2) (/ pi 2)) off)
  31. pmid2 (mapcar (function (lambda (a b) (/ (+ a b) 2))) p2 p3)
  32. px2   (polar pmid2 (+ (angle p2 p3) (/ pi 2)) off)
  33. pmid3 (mapcar (function (lambda (a b) (/ (+ a b) 2))) p3 p4)
  34. px3   (polar pmid3 (+ (angle p3 p4) (/ pi 2)) off)
  35. pmid4 (mapcar (function (lambda (a b) (/ (+ a b) 2))) p4 p1)
  36. px4   (polar pmid4 (+ (angle p4 p1) (/ pi 2)) off)
  37. )
  38. (command "_dimlinear" "_non" p1 "_non" p2 "_non" px1)
  39. (command "_dimlinear" "_non" p2 "_non" p3 "_non" px2)
  40. (command "_dimlinear" "_non" p3 "_non" p4 "_non" px3)
  41. (command "_dimlinear" "_non" p4 "_non" p1 "_non" px4)
  42.    )
  43. (command "._ucs" "_p")
  44. (princ)
  45. )

 
~'J'~
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-9 08:38 , Processed in 0.518791 second(s), 86 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表