乐筑天下

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

[综合讨论] 清理archi的Lisp例程

[复制链接]

1

主题

9

帖子

8

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 15:40:25 | 显示全部楼层 |阅读模式
我需要一个lisp例程的帮助来清理建筑师的绘图。
解锁、解冻并打开所有层
爆发
将所有图层更改为bylayer
将所有图案填充更改为254色并发送到背面
将所有线宽更改为0.18
全部更改为颜色8
过度杀戮
净化
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 15:45:12 | 显示全部楼层
几个问题
 
图层设置为“bylayer”还是“所有对象”也设置为“bylayer”?如果全部按层设置,则将线宽设置为与颜色相同的更改层设置的一部分。
 
  1. (defun allbylayer ( / x obj ssall)
  2. (setq ssall (ssget "x"))
  3. (repeat (setq x  (sslength ssall))
  4. (setq obj (vlax-ename->vla-object (ssname ssall (setq x (- x 1)))))
  5. (vlax-put-property obj "Linetype" "Bylayer")
  6. (vlax-put-property obj "Lineweight" " -1")
  7. (vlax-put-property obj "Color" acbylayer)
  8. )
  9. )
  10. (allbylayer)
  11. (Alert "All objects now by layer")

 
  1. ; open database
  2. (setq  doc (vla-get-activedocument  (vlax-get-acad-object)))
  3. (setq lays (vla-get-Layers doc))
  4. (vlax-for lay lays
  5. (vla-put-color lay
  6. (vla-put-lineweight lay 18) ; note 18 for metric =0.18 not tested on feet dwg must match a known size.
  7. )

 
Burst在与lisp一起使用时有一个别名。但这是可行的
 
  1. (while (setq ss (ssget "X" ))
  2. (sssetfirst nil ss)
  3. (C:Burst)
  4. )

 
清除使用
  1. (command "-purge" "all" "*" "n")

 
过度杀戮帮助任何人
回复

使用道具 举报

10

主题

598

帖子

594

银币

初来乍到

Rank: 1

铜币
48
发表于 2022-7-5 15:52:30 | 显示全部楼层
我可以使用LISP,在建筑师开始绘制图纸之前对其进行处理
回复

使用道具 举报

1

主题

9

帖子

8

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 15:58:06 | 显示全部楼层
谢谢,比格尔会试一试,让你知道它是怎么回事!
回复

使用道具 举报

1

主题

9

帖子

8

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 15:59:51 | 显示全部楼层
BIGAL是的,所有层都更改为bylayer&所有层都更改为颜色8,还有将图案填充设置为254并设置为back的乐趣吗?
回复

使用道具 举报

1

主题

9

帖子

8

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 16:04:17 | 显示全部楼层
谢谢,比格尔会试一试,让你知道它是怎么回事!
 
BIGAL是的,所有层都更改为bylayer&所有层都更改为颜色8,还有将图案填充设置为254并设置为back的乐趣吗?
回复

使用道具 举报

58

主题

3353

帖子

33

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1761
发表于 2022-7-5 16:11:38 | 显示全部楼层
可以对其进行修改以满足您的需要。
回复

使用道具 举报

1

主题

9

帖子

8

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 16:13:57 | 显示全部楼层
谢谢你能给我发个lsp让我试试吗?
回复

使用道具 举报

58

主题

3353

帖子

33

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1761
发表于 2022-7-5 16:21:32 | 显示全部楼层
 
这是一个开始:
解锁、解冻并打开所有层
爆发
将所有图层更改为bylayer假设这是bylayer的所有对象
将所有图案填充更改为254色并发送到背面
将所有线宽更改为0.18
全部更改为颜色8
过度杀戮
净化
 
  1. (defun c:drawingtobylayer
  2.       ;;-----------------------------------------------------------------
  3.       ;;
  4.       ;;  Copyright © 2004 Michael Puckett. All Rights Reserved
  5.       ;;
  6.       ;;-----------------------------------------------------------------
  7.       ;;
  8.       ;;  Forces the entire drawing to "ByLayer" (even xrefs for
  9.       ;;  the lifetime of the session or until an xref reload
  10.       ;;  occurs).
  11.       ;;
  12.       ;;  Forces block definition child entities to layer "0".
  13.       ;;
  14.       ;;  Existing attributes are forced to the same layer the
  15.       ;;  parent block reside on.
  16.       ;;
  17.       ;;  Nominally tested, let me know if you find anything wonky.
  18.       ;;
  19.       ;;  * Use at your own risk. Please test on a dummy dwg *
  20.       ;;
  21.       ;;-----------------------------------------------------------------
  22.       (/ _unlockalllayers _locklayers _objecttolayerzero _objecttobylayer _documenttobylayer _main)
  23. ;; (idt_draworder (idt_ss->vla-list (ssget)) 'movetobottom)
  24. (defun _unlockalllayers (document / result)
  25.    (vlax-for layer (vlax-get-property document 'layers)
  26.      (cond ((eq :vlax-true (vlax-get-property layer 'lock))
  27.      (vlax-put-property layer 'lock :vlax-false)
  28.      (setq result (cons layer result))
  29.     )
  30.      )
  31.      ;; RJP added: Change all layers to color 8, linewight to 18mm, thaw and turn on
  32.      (foreach property        '((color .  (lineweight . 18) (freeze . 0) (layeron . -1))
  33. (vl-catch-all-apply 'vlax-put (list layer (car property) (cdr property)))
  34.      )
  35.    )
  36.    result
  37. )
  38. (vlax-ename->vla-object (tblobjname "layer" "0"))
  39. (defun _locklayers (layers) (foreach layer layers (vlax-put-property layer 'lock :vlax-true)))
  40. ;; (defun _objecttolayerzero (object) (vlax-put-property object 'layer "0"))
  41. (defun _objecttobylayer (obj / layer)
  42.    ;; RJP added lineweight and transparency
  43.    (foreach property '((color . 256)
  44.                 (linetype . "ByLayer")
  45.                 (lineweight . "ByLayer")
  46.                 (transparency . "ByLayer")
  47.                )
  48.      (vl-catch-all-apply 'vlax-put (list obj (car property) (cdr property)))
  49.    )
  50.    (cond ((and        (eq "AcDbBlockReference" (vlax-get obj 'objectname))
  51.         (eq :vlax-true (vlax-get-property obj 'hasattributes))
  52.    )
  53.    (setq layer (vlax-get-property obj 'layer))
  54.    (foreach child (vlax-invoke obj 'getattributes)
  55.      (_objecttobylayer child)
  56.      (vlax-put-property child 'layer layer)
  57.    )
  58.   )
  59.   ;; RJP added hatch to color 254
  60.   ((eq "AcDbHatch" (vlax-get obj 'objectname))
  61.    (vl-catch-all-apply 'vla-put-color (list obj 254))
  62.   )
  63.    )
  64. )
  65. (defun _documenttobylayer (document)
  66.    (vlax-for block (vlax-get-property document 'blocks)
  67.      (if (eq :vlax-true (vlax-get-property block 'islayout))
  68. (vlax-for object block (_objecttobylayer object))
  69. (vlax-for object block (_objecttobylayer object))
  70.      )
  71.    )
  72. )
  73. (defun _main (/ document lockedlayers)
  74.    (setq lockedlayers
  75.    (_unlockalllayers
  76.      (setq document (vlax-get-property (vlax-get-acad-object) 'activedocument))
  77.    )
  78.    )
  79.    (_documenttobylayer document)
  80.    ;; RJP leave layers unlocked
  81.    ;; (_locklayers lockedlayers)
  82.    (princ)
  83. )
  84. (_main)
  85. )
回复

使用道具 举报

1

主题

9

帖子

8

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 16:24:17 | 显示全部楼层
谢谢Ronjonp会试试的!
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2024-11-21 20:38 , Processed in 0.154168 second(s), 72 queries .

© 2020-2024 乐筑天下

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