gS7 发表于 2022-7-6 07:06:46

块未插入

嘿,伙计们。。晚上好(印度时间)
我的Lisp文件未插入阻止其显示为零
请帮我找出我在这个Lisp程序中犯的错误
 
(defun c:Ins (/ cmh osm att old_error block user x y z Point Rot Pt)
   (defun err (msg)
    (if
          (or
                  (= msg "Function cancelled")
                        (= msg "quit / exit abort")
                )
          (progn
                  (princ "\n***Error Somthing Went Wrong***")
                        (princ "\n***Restoring System Variables***")
          )
        )
        (setvar 'cmdecho cmh)
        (setvar 'osmode osm)
        (setvar 'Attreq att)
        (princ)
)
(setq cmh(getvar 'cmdecho))
(setq osm(getvar 'osmode))
(setq att(getvar 'attreq))
(setvar 'cmdecho 0)
(setvar 'osmode 0)
(setvar 'attreq 0)
(setq old_error *error* *error* err)
(if (setq block(getfiled "Select Block" "C:\\MYBLOCKS\\" "dwg" 2))
    (progn
          (initget "I C")
                (prompt "\nType (I) For Insertion On Screen (C) Input Co-Ordinates")
                (setq user (getkword "\nInsertion On Screen /Input Co-Ordinates :<<Insertion On Screen>>:"))
                (if (or (= user "") (= user nil))
                  (setq user "I")
                )
                (if (= user "C")
                  (progn
                          (setq X(getreal "\nEasting Value(X):")
                                      Y(getreal "\nNorthing Value(Y):")
                                          Z(Getreal "\nAltitude Value(Z):")
                                          Point(list x y z)
                                          rot (getangle "\nRotation Angle :")
                          )
                                (entmakex (list (cons 0 "INSERT")
                                               (cons 2 block)
                                               (cons 10 Point)
                                                           (cons 50 rot)
                                               )
                                )
                        )
                        (progn
                          (setq rot(getangle "\nRotation Angle:"))
                                (setq pt (getpoint "\Specify insertion point:"))
                                (entmakex (list (cons 0 "INSERT")
                                               (cons 2 block)
                                               (cons 10 Pt)
                                                           (cons 50 rot)
                                               )
                                )
                        )
                )
        )
)
(setvar 'osmode osm)
(setvar 'cmdecho cmh)
(setvar 'attreq att)
(setq *error* old_error)
(princ)
)
                                                                  

Tharwat 发表于 2022-7-6 07:40:52

据我所知,您无法使用entmake(x)函数插入外部图形,您可能需要使用insert命令替换它,此外,您没有包括41、42和43的DXF。

Lee Mac 发表于 2022-7-6 07:48:04

使用entmake创建块参照(插入图元)时,首先需要确保参照的块定义(块图元)存在于图形的块表中。还要注意,DXF Group 2值需要块名,引用块表中的符号,而不是文件路径。
 
 
这些组码是可选的,默认为1.0

gS7 发表于 2022-7-6 08:20:25

坦克u Tharwat&Lee Mac
页: [1]
查看完整版本: 块未插入