乐筑天下

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

为总面积选择类似的图案填充

[复制链接]

238

主题

769

帖子

33

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1721
发表于 2017-6-20 07:35:16 | 显示全部楼层 |阅读模式
我想知道如果我选择相似的,是否有一种简单的方法来获得这些舱口的总面积。我一点运气都没有
我知道要做到这一点需要很长的时间,在每一个边界上重新关联边界,然后删除图案填充
是否有一个例程,我可以选择所有的图案,并将它们转换为一个图案填充,从而获得具有相同源图案填充图案的区域?只是头脑风暴而已(defun c:hbound (/ *error* i p s v x)
  (defun *error* (msg)
    (mapcar '(lambda (x) (setvar (car x) (cdr x))) v)
    (if (not (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*"))
      (princ (strcat "\nError: " msg))
    )
    (princ)
  )
  (setq i 0)
  ;; Tested in AutoCAD 2018 - RJP 6.20.2018
  ;; Creates boundaries on layers that match the hatch pattern name
  (if (setq s (ssget '((0 . "hatch"))))
    (progn (setq
             v (mapcar '(lambda (x) (cons x (getvar x))) '("clayer" "cmdecho" "hpseparate" "hpbound"))
           )
           (setvar 'cmdecho 0)
           (setvar 'hpseparate 1)
           (setvar 'hpbound 1)
           (foreach x (vl-remove-if 'listp (mapcar 'cadr (ssnamex s)))
             (if (null (tblobjname "layer" (setq p (cdr (assoc 2 (entget x))))))
               (entmakex (list '(0 . "LAYER")
                               '(100 . "AcDbSymbolTableRecord")
                               '(100 . "AcDbLayerTableRecord")
                               '(70 . 0)
                               (cons 2 p)
                               '(6 . "Continuous")
                               (cons 62 (setq i (1+ i)))
                         )
               )
             )
             (setvar 'clayer p)
             (command "_hatchgenerateboundary" x "")
           )
           (mapcar '(lambda (x) (setvar (car x) (cdr x))) v)
    )
  )
  (princ)
)[/code]
回复

使用道具 举报

36

主题

621

帖子

2

银币

中流砥柱

Rank: 25

铜币
765
发表于 2017-6-20 08:03:46 | 显示全部楼层
嘿,谢谢你尝试一下。我有好消息要告诉你。我想你解决了我的问题!(和往常一样)在2017年使用这个程序,我似乎没有得到与你在动画照片中相同的结果。我的只是在屏幕左侧显示一个红色三角形。奇怪的
回复

使用道具 举报

58

主题

3353

帖子

33

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1761
发表于 2017-6-20 09:14:07 | 显示全部楼层
奇怪…它在17年到18年对我有效。再试一次。改变了几个变量。
回复

使用道具 举报

6

主题

145

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
169
发表于 2017-6-20 11:23:10 | 显示全部楼层
更奇怪的是......仍然得到同样的东西。让我重置我的CAD。也许我这端有什么东西。
我保存了它,然后审核了它。
  1. Command: _QSAVE Drawing saved in AutoCAD 2013 format.
  2. Command: auidt Unknown command "AUIDT".  Press F1 for help.
  3. Command: *Cancel*
  4. Command: *Cancel*
  5. Command: audit
  6. Fix any errors detected? [Yes/No] : y
  7. Auditing Header
  8. Auditing Tables
  9. Auditing Entities Pass 1
  10. Pass 1 400     objects auditedAECC_ALIGNMENT_STYLE (AcDbSymbolTableRecord)
  11.                     eNullObjectId                       Standard
  12. AECC_ALIGNMENT_STYLE (AcDbSymbolTableRecord)
  13.                     eNullObjectId                       Standard
  14. AECC_ALIGNMENT_STYLE (AcDbSymbolTableRecord)
  15.                     eNullObjectId                       Standard
  16. AECC_ALIGNMENT_STYLE (AcDbSymbolTableRecord)
  17.                     eNullObjectId                       Standard
  18. Pass 1 3400    objects audited
  19. Auditing Entities Pass 2
  20. Pass 2 3400    objects audited
  21. Auditing Blocks
  22. 1       Blocks audited
  23. Auditing AcDsRecords
  24. Total errors found 4 fixed 4
  25. Erased 0 objects
  26. Command:
  27. Command: (LOAD "C:/Users/rberger/Desktop/tmp.lsp") C:HBOUND
  28. Command: hbound
  29. Select objects: Specify opposite corner: 18 found
  30. Select objects:
  31. *Invalid selection*
  32. Expects a point or Window/Last/Crossing/BOX/ALL/Fence/WPolygon/CPolygon/Group/Add/Remove/Multiple/Previous/Undo/AUto/SIngle
  33. Select hatch objects: *Cancel*

回复

使用道具 举报

58

主题

3353

帖子

33

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1761
发表于 2017-6-20 12:18:49 | 显示全部楼层
这很奇怪..这就像您尝试选择的舱口未被识别一样。( *无效选择* )
回复

使用道具 举报

238

主题

769

帖子

33

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1721
发表于 2017-6-21 07:56:05 | 显示全部楼层
哇…我只是重置了一切(甚至注册表和Appdata)。下载您的绘图。讨厌的人。
回复

使用道具 举报

58

主题

3353

帖子

33

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1761
发表于 2017-6-21 08:51:19 | 显示全部楼层
必须是一些变量..这就是为什么我很少使用命令调用。
回复

使用道具 举报

238

主题

769

帖子

33

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1721
发表于 2017-6-21 09:23:34 | 显示全部楼层
嘿,我很感激你的帮助!你做得很好!我想我的CAD不喜欢我。哈哈
回复

使用道具 举报

58

主题

3353

帖子

33

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1761
发表于 2017-6-21 09:36:41 | 显示全部楼层
我确实偶然发现了这个代码
  1. (DEFUN C:RB () (setvar "osmode" 0) (setq ss1 (ssget '((0 . "HATCH")))) (setq len1 (sslength ss1) n1 0) (while (< n1 len1) (setq
  2. ename1 (ssname ss1 n1)) (COMMAND "HATCHEDIT" ename1 "B" "" "Y") (setq n1 (1+ n1)) ) ) ;end RB

这可以取代_HATCHGENERATEBOUNDARY命令吗?
我认为这可能是我的问题。
回复

使用道具 举报

238

主题

769

帖子

33

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1721
发表于 2017-6-21 09:43:39 | 显示全部楼层
您可以尝试:
(command "-hatch edit " x " Boundary " " Polyline " " Yes ")

代替:
(command " _ hatchgenerateboundary " x " ")
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-10 17:46 , Processed in 0.484424 second(s), 72 queries .

© 2020-2025 乐筑天下

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