Johntosh 发表于 2022-7-5 15:44:44

转换为块

是否可以在不打开对话框的情况下访问“转换为块”选项?
 
我似乎无法使用block命令访问它!

Lee Mac 发表于 2022-7-5 15:49:53

确实有:
 
我曾与David Bethel合作:
 

(defun c:obj2blk1 (/ ss bn pt i ent elist)

; Get Entities

   (while (not ss)
   (princ "\nSelect Objects to Convert to Blocks:")
   (setq ss (ssget '((-4 . "<NOT") (0 . "INSERT,POLYLINE,VIEWPORT") (-4 . "NOT>"))))
   ) ;_end while

; Get Block Name and Base Point

   (while (or (not bn)
          (not (snvalid bn))
      ) ;_end or
   (setq bn (getstring "Specify Block Name: "))
   ) ;_end while

   (initget 1)
   (setq pt (getpoint "Specify Base Point for Block: "))

;;; Create BLOCK Header
   (entmake (list (cons 0 "BLOCK") (cons 10 pt) (cons 2 bn) (cons 70 0)))

;;;STEP THRU THE SET
   (setq i (sslength ss))
   (while (>= i (setq i (1- i)) 0)
   (setq ent   (ssname ss i)
         elist (entget ent)
   ) ;_end setq
   (entmake elist)
   ) ;_end while

;;;FINISH THE BLOCK DEFINITION
   (entmake (list (cons 0 "ENDBLK") (cons 8 "0")))

;;;Insert the Block & Delete Originals
   (entmake (list (cons 0 "INSERT") (cons 2 bn) (cons 8 "0") (cons 10 pt)))
   (command "_.ERASE" ss "")
   (redraw)
   (prin1)
) ;_end defun

eldon 发表于 2022-7-5 15:53:31

 
你试过“-b”吗

Lee Mac 发表于 2022-7-5 15:56:10

 
厕所,
 
您可以使用“-BLOCK”并执行常见的命令提示,这样可能更容易。
 
但是,如果您只想阻止对象,我的LISP将绕过所有命令提示,从选定的对象创建一个块。

Johntosh 发表于 2022-7-5 15:58:04

埃尔登
 
使用-block命令不会产生将原始实体转换为块定义的选项。
 
与-hatchedit命令类似,为-bhatch命令带来了更多选项,如边界创建。
 
和李和大卫的解决方案一样令人印象深刻的是,我希望有一个命令选项。

Lee Mac 发表于 2022-7-5 16:02:28

转换为块函数的目的是什么?在LISP中使用还是独立使用?
 
为什么您特别需要“命令”选项?
 
只是好奇

Lee Mac 发表于 2022-7-5 16:04:25

如果您特别希望这样做,“-block”可以与“-insert”命令配合使用。但它可能相当喜怒无常!

MikeP 发表于 2022-7-5 16:07:55

这是最简单的方法,我每天至少用20次
你所需要做的就是在pb中选择一组对象,并将其放置在你想要放置块的地方。
如果要复制组并作为块插入,而不是删除组,请使用(命令“copyclip”ss1”)替换(命令“cutclip”ss1“”)
 
(defun c:pb (/ ss1)
(setq ss1 (ssget ))
(command "cutclip" ss1 "")
(command "pasteblock")
(princ)
)

Lee Mac 发表于 2022-7-5 16:11:26

很好的解决方案,迈克。

eldon 发表于 2022-7-5 16:15:41

 
这些年我哪里出了问题
 
“-block”命令使工具可以键入块名,选择插入点,然后选择对象(即实体),这些对象随后形成块。这对我来说很管用。
 
然后用“OOPS”返回原始实体
页: [1] 2
查看完整版本: 转换为块