totzky 发表于 2022-7-6 17:06:08

LISP自动加载gro

谁来帮我修改代码。请
 
(defun C:llt()
(command "-linetype" "l" "cen*" "acadiso.lin" "")
(command "-linetype" "l" "hid*" "acadiso.lin" "")
(princ)
)

totzky 发表于 2022-7-6 17:16:36

...正在努力,这就是我得到的。看起来效果不错。
有什么建议吗?
 
 
(defun c:llt()
(setq a "Center")
(if (= (tblsearch "ltype" a) nil)
      (command "-linetype" "l" a "acadiso.lin" "")
            (princ))
(setq b "Center2")
(if (= (tblsearch "ltype" b) nil)
      (command "-linetype" "l" b "acadiso.lin" "")
            (princ))
(setq c "Centerx2")
(if (= (tblsearch "ltype" c) nil)
      (command "-linetype" "l" c "acadiso.lin" "")
            (princ))
(setq d "Hidden")
(if (= (tblsearch "ltype" d) nil)
      (command "-linetype" "l" d "acadiso.lin" "")
            (princ))
(setq e "Hidden2")
(if (= (tblsearch "ltype" e) nil)
      (command "-linetype" "l" e "acadiso.lin" "")
            (princ))
(setq f "Hiddenx2")
(if (= (tblsearch "ltype" f) nil)
      (command "-linetype" "l" f "acadiso.lin" "")
            (princ))
(princ)
)

ASMI 发表于 2022-7-6 17:34:35

exatra代码过多:
(defun c:llt()
(foreach lt '("Center" "Center2" "Centerx2" "Hidden" "Hidden2" "Hiddenx2")
   (if(not(tblsearch "ltype"lt))
   (command "_.-linetype" "_l" lt "acadiso.lin" "")
   ); end if
   ); end foreach
(princ)
); end of c:llt

totzky 发表于 2022-7-6 17:40:24

谢谢你,阿斯米!

JONTHEPOPE 发表于 2022-7-6 17:53:58

如果您想在行中添加一些单词,这可能会有所帮助。不知道如何缩短第二个点,若文字短于3个字母,我想它会把def放在文件夹中,而不是你们从那个里编辑。
 

;Tip1684:   LTXT.LSP      Linetype Generator   (c)2001, Darren Marker

(defun
    C:LTXT ()
(setvar "cmdecho" 0)
(setq V:CLAYER (getvar "clayer"))
(setq V:EXPERT (getvar "expert"))
(if (not V:LINET)
   (setq V:LINET "XX")
) ;_ end of if
(setq V:LINET_X
      (getstring
          (strcat
            "\n \n \nEnter line text: <"
            V:LINET
            ">"
          ) ;_ end of strcat
      ) ;_ end of getstring
) ;_ end of setq
(if (/= V:LINET_X "")
   (setq V:LINET (strcase V:LINET_X))
) ;_ end of if
(setq V:LINET (strcase V:LINET))
(LT_MAKER)
) ;_ end of defun
(defun
    LT_MAKER ()
(setvar "expert" 4)
(setq V:LINET_L (strlen V:LINET))
(setq V:LINET_W (rtos (* V:LINET_L 0.1) 2 1))
(setq V:LT_FILE "c:\\temp\\lt_temp.lin")
(setq V:LT_VAR1 (open V:LT_FILE "w"))
(setq V:LT_TEXTL1
      (strcat
          "*" V:LINET "," V:LINET "----" V:LINET "----" V:LINET "----"
          V:LINET
         ) ;_ end of strcat
) ;_ end of setq
(setq V:LT_TEXTL2
      (strcat
          "A,5.5,-1.5,["
          (chr 34)
          V:LINET
          (chr
            34
          ) ;_ end of chr
          ",SIMPLEX,S=0.1,R=0.0,X=-1.25,Y=-0.25],-"
          V:LINET_W
      ) ;_ end of strcat
) ;_ end of setq
(setq V:LT_VAR2 (write-line V:LT_TEXTL1 V:LT_VAR1))
(setq V:LT_VAR3 (write-line V:LT_TEXTL2 V:LT_VAR1))
(close V:LT_VAR1)
(command "-linetype" "l" V:LINET V:LT_FILE "")
(setvar "expert" V:EXPERT)
(command ".celtype" V:LINET)
(princ
   (strcat
   "\n \n \nCurrent Layer -"
   (getvar
       "clayer"
   ) ;_ end of getvar
   ) ;_ end of strcat
) ;_ end of princ
(princ)
(princ
   (strcat
   "\n \n \nCurrent Entity linetype set to:"
   V:LINET
   ) ;_ end of strcat
) ;_ end of princ
(princ)
(setq V:PNT1 (getpoint "\nPick start point:"))
(command ".line" V:PNT1)
(while
   (setq V:PT
          (getpoint
            (getvar "lastpoint")
            "\nNext point
            or <Return to
            terminate>:"
          ) ;_ end of getpoint
   ) ;_ end of setq
    (command V:PT)
) ;_ end of while
(command)
(command)
(setvar "celtype" "bylayer")
(princ)
(princ
   "\n \nLine-Text terminated.Linetype set to
            BYLAYER:"
) ;_ end of princ
(princ)
) ;_ end of defun
(princ)
(princ " Line-Text Loaded...")
(princ)
(princ
(strcat
   "\n \n"
   (chr 34)
   "LTXT"
   (chr 34)
   " to
            execute:"
) ;_ end of strcat
) ;_ end of princ
(princ)


totzky 发表于 2022-7-6 18:02:39

我已经尝试了你的代码连接应用程序,但它没有给出我想要的。我不知道这是否只是因为我不知道如何使用或什么,但它不起作用。无论如何,ASMI的代码已经足够好了。
谢谢你的努力。

JONTHEPOPE 发表于 2022-7-6 18:09:37

是的,那家伙是国王
页: [1]
查看完整版本: LISP自动加载gro