amb2301 发表于 2022-7-5 15:56:45

块编辑和旋转lisp req

嗨,朋友们,
我需要一个lisp文件将块转换为所需格式的文本(如附图所示)。实际上,我的绘图中有很多块,都要转换为下图所示的格式,之前我正在手动执行以下步骤
1、块编辑
2.在块编辑器中删除下面的青色线和文本,
3、将字体高度更改为2.0,样式为Arial
4、退出块编辑器
5.使用ATTSYNC命令反映所有块中所做的更改,
6.选择相似的所有块并旋转到0度。
 
另附。有了这个,请帮帮我。
 
谢谢
Amb。

注释重新排列。图纸

ronjonp 发表于 2022-7-5 16:05:21

(defun c:foo (/ a p s)
(if (setq s (ssget '((0 . "insert") (2 . "SITE_ANNO") (66 . 1))))
   (foreach b (vl-remove-if 'listp (mapcar 'cadr (ssnamex s)))
   (and (setq p (cdr (assoc 10 (entget b))))
   (setq a (vl-some '(lambda (x)
                     (if (= "ADRESSE" (vla-get-tagstring x))
                       (vla-get-textstring x)
                     )
                     )
                  (vlax-invoke (vlax-ename->vla-object b) 'getattributes)
           )
   )
   (entmake (list '(0 . "TEXT")
                  '(100 . "AcDbEntity")
                  '(67 . 0)
                  '(8 . "SITE_ANNO")
                  '(62 . 1)
                  '(6 . "ByBlock")
                  '(100 . "AcDbText")
                  (cons 10 p)
                  '(40 . 2.0)
                  (cons 1 a)
                  '(50 . 0.0)
                  '(41 . 1.0)
                  '(51 . 0.0)
                  '(7 . "Style-Arial")
                  '(71 . 0)
                  '(72 . 1)
                  (cons 11 p)
                  '(100 . "AcDbText")
                  '(73 . 0)
          )
   )
   (entdel b)
   )
   )
)
(princ)
)

amb2301 发表于 2022-7-5 16:17:04

 
 
 
嗨,Ronjonp,
出色的工作,它使我们的工作如此简单,非常感谢您的帮助:)我对您的lisp工作非常满意

ronjonp 发表于 2022-7-5 16:26:07

 
很乐意帮忙

amb2301 发表于 2022-7-5 16:32:25

嗨,Ronjonb,
在同一个lisp上还有一个帮助,我尝试将字体样式改为“Arial Black”而不是“Arial”,但它不起作用,你能帮我检查一下吗?
 
谢谢
电磁轴承

ronjonp 发表于 2022-7-5 16:34:20

也许是这个?
(defun c:foo (/ a p s)
(entmakex '((0 . "STYLE")
      (100 . "AcDbSymbolTableRecord")
      (100 . "AcDbTextStyleTableRecord")
      (2 . "ArialBlack")
      (70 . 0)
      (40 . 0.0)
      (41 . 1.0)
      (50 . 0.0)
      (71 . 0)
      (42 . 0.125)
      (3 . "ariblk.ttf")
      (4 . "")
   )
)
(if (setq s (ssget '((0 . "insert") (2 . "SITE_ANNO") (66 . 1))))
   (foreach b (vl-remove-if 'listp (mapcar 'cadr (ssnamex s)))
   (and (setq p (cdr (assoc 10 (entget b))))
   (setq a (vl-some '(lambda (x)
                     (if (= "ADRESSE" (vla-get-tagstring x))
                       (vla-get-textstring x)
                     )
                     )
                  (vlax-invoke (vlax-ename->vla-object b) 'getattributes)
           )
   )
   (entmake (list '(0 . "TEXT")
                  '(100 . "AcDbEntity")
                  '(67 . 0)
                  '(8 . "SITE_ANNO")
                  '(62 . 1)
                  '(6 . "ByBlock")
                  '(100 . "AcDbText")
                  (cons 10 p)
                  '(40 . 2.0)
                  (cons 1 a)
                  '(50 . 0.0)
                  '(41 . 1.0)
                  '(51 . 0.0)
                  '(7 . "ArialBlack")
                  '(71 . 0)
                  '(72 . 1)
                  (cons 11 p)
                  '(100 . "AcDbText")
                  '(73 . 0)
          )
   )
   (entdel b)
   )
   )
)
(princ)
)

amb2301 发表于 2022-7-5 16:42:11

 
 
 
嗨,Ronjonp,
这正是我想要的,你的工作很完美。
非常感谢你的帮助!!!
 
当做
电磁轴承

ronjonp 发表于 2022-7-5 16:56:14

很乐意帮忙

amb2301 发表于 2022-7-5 16:59:48

 
 
嗨,Ronjonp,
类似的另一块我试图修改你给定的lisp,但它没有发生,我可以把它作为一个新的职位?
页: [1]
查看完整版本: 块编辑和旋转lisp req