如何创建注释性Bl
你好请告诉我如何使用entmake函数创建注释性块。
(defun c:crb ( )
(if (not (tblsearch "BLOCK" "CRBLK"))
(progn
(if (not (tblsearch "STYLE" "Gen-Text"))
(entmake
(list
(cons 0 "STYLE")
(cons 100 "AcDbSymbolTableRecord")
(cons 100 "AcDbTextStyleTableRecord")
(cons 2 "Gen-Text")
(cons 70 0)
(cons 40 2.5)
(cons 3 "Arial.ttf")
)
)
)
(entmake
(list
(cons 0 "BLOCK")
(cons 8 "0")
(cons 370 0)
(cons 2 "CRBLK")
(cons 70 2)
(list 10 0.0 0.0 0.0)
)
)
(entmake
(list
(cons 0 "CIRCLE")
(cons 8 "0")
(cons 370 0)
(list 10 0.0 0.0 0.0)
(cons 40 1.25)
)
)
(entmake
(list
(cons 0 "ATTDEF")
(cons 8 "0")
(cons 370 0)
(cons 7 "Gen-Text")
(list 10 3.0 0.0 0.0)
(list 11 3.0 0.0 0.0)
(cons 40 2.5)
(cons 1 "00")
(cons 3 "Number")
(cons 2 "NO")
(cons 70 0)
(cons 72 0)
(cons 74 2)
)
)
(entmake
(list
(cons 0 "ENDBLK")
(cons 8 "0")
)
)
(
(lambda ( lst )
(regapp "ACAD")
(entmod
(append (subst (cons 70 1) (assoc 70 lst) lst)
(list
(list -3
(list "ACAD"
(cons 1000 "DesignCenter Data")
(cons 1002 "{")
(cons 1070 1)
(cons 1070 1)
(cons 1002 "}")
)
)
)
)
)
)
(entget (cdr (assoc 330 (entget (tblobjname "BLOCK" "CRBLK")))))
)
)
)
(princ)
) 首先创建块的过程中,有一半是正确的。另一半正在创建插入实体:
(entmake (list (cons 0 "INSERT")
(cons 8 "0")
(cons 66 1)
(cons 2 "CP")
(cons 10 (list 0 0 0))
(cons 41 1)
(cons 42 1)
(cons 50 0)
(cons 43 1)
(cons 70 0)
(cons 71 0)
(cons 44 0)
(cons 45 0)
(cons 210 (list 0 0 1))
(cons 62 256)
(cons 39 0)
(cons 6 "BYLAYER")))
(entmake (list (cons 0 "ATTRIB")
(cons 8 "0")
(cons 10 (list 0 0 0))
(cons 40 1)
(cons 1 "TESTING 123")
(cons 2 "TAGNAME")
(cons 70 0)
(cons 73 0)
(cons 50 0)
(cons 41 1)
(cons 51 0)
(cons 7 "STANDARD")
(cons 71 0)
(cons 72 0)
(cons 11 (list 0 0 0))
(cons 210 (list 0 0 1))
(cons 74 0)
(cons 62 256)
(cons 39 0)
(cons 6 "BYLAYER")))
(entmake (list (cons 0 "SEQEND")
(cons 8 "0")))
扩展数据可以包含在插入头定义中,也可以随后附加-大卫
扩展数据用于更改块定义的单元,请参阅:
http://www.cadtutor.net/forum/showthread.php?62333-如何在创建Lisp时禁用属性quot LOCK POSITION quot&p=425282&viewfull=1#post425282 你好
李先生帮我创建了上面的块,现在我需要带注释的块,我不知道我需要更改哪些代码。我尝试了插入,但仍然没有创建注释块。
谢谢和问候
比乔伊 不幸的是,我没有使用注释性对象的经验。 :(
李,注释是AutoCAD中功能最强大的工具之一,你应该试试。。如果你对注释有了一个想法,那么你就不会在没有注释的情况下绘制图形。请检查此链接可能会对您有所帮助http://cadlispandtips.blogspot.com/2010/11/annotation-simple-introduction.html
即注释性对象。 你好,pBe,
你知道如何用lisp创建注释性块吗?如果有人知道,请帮助我。。。 Lisp程序,不是真的。但这就像使用命令“Block”并将其转换为注释性一样简单。所以我真的不需要为此编写lisp代码。如果我们足够努力的话,我想我们会找到它的。
经过一点逆向工程和猜测。。。
(defun c:crb ( )
;;===============================================;;
;; Example by Lee Mac 2011-www.lee-mac.com ;;
;;===============================================;;
(if (not (tblsearch "BLOCK" "CRBLK"))
(progn
(if (not (tblsearch "STYLE" "Gen-Text"))
(entmake
(list
(cons 0 "STYLE")
(cons 100 "AcDbSymbolTableRecord")
(cons 100 "AcDbTextStyleTableRecord")
(cons 2 "Gen-Text")
(cons 70 0)
(cons 40 2.5)
(cons 3 "Arial.ttf")
)
)
)
(entmake
(list
(cons 0 "BLOCK")
(cons 8 "0")
(cons 370 0)
(cons 2 "CRBLK")
(cons 70 2)
(list 10 0.0 0.0 0.0)
)
)
(entmake
(list
(cons 0 "CIRCLE")
(cons 8 "0")
(cons 370 0)
(list 10 0.0 0.0 0.0)
(cons 40 1.25)
)
)
(entmake
(list
(cons 0 "ATTDEF")
(cons 8 "0")
(cons 370 0)
(cons 7 "Gen-Text")
(list 10 3.0 0.0 0.0)
(list 11 3.0 0.0 0.0)
(cons 40 2.5)
(cons 1 "00")
(cons 3 "Number")
(cons 2 "NO")
(cons 70 0)
(cons 72 0)
(cons 74 2)
)
)
(entmake
(list
(cons 0 "ENDBLK")
(cons 8 "0")
)
)
(
(lambda ( lst )
(regapp "ACAD")
(regapp "AcadAnnotative")
(entmod
(append (subst (cons 70 1) (assoc 70 lst) lst)
(list
(list -3
(list "ACAD"
(cons 1000 "DesignCenter Data")
(cons 1002 "{")
(cons 1070 1)
(cons 1070 1)
(cons 1002 "}")
)
(list "AcadAnnotative"
(cons 1000 "AnnotativeData")
(cons 1002 "{")
(cons 1070 1)
(cons 1070 1)
(cons 1002 "}")
)
)
)
)
)
)
(entget (cdr (assoc 330 (entget (tblobjname "BLOCK" "CRBLK")))))
)
)
)
(princ)
)
页:
[1]
2