CadFrank 发表于 2022-7-5 20:28:00

; 错误:发生异常:0

你好,我想知道是否有人看到过这个错误。
 
; 错误:发生异常:0xC0000005(访问冲突)
; 警告:未知异常时跳过了展开
 
如果他们知道如何修复它。。因为当我运行代码时,它会这样做。
 
谢谢你的帮助!
 
干杯和啤酒

ReMark 发表于 2022-7-5 20:36:35

一定是密码。
 
你能给我们提供更多的信息吗,弗兰克?谢谢
 
你知道导致错误的代码行吗?

CadFrank 发表于 2022-7-5 20:48:19

是的,当我在另一个文件中单独运行这部分代码时。lsp它运行完美。所以我会发布这两个代码,这与视觉Lisp和查找。但由于这是一个与代码不同的问题,我没有把它放在里面。
 
下面是完整的代码:
 
;¦¦¦ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ¦¦¦;
;¦¦¦               CE PROGRAM EST CONÇU POUR DESSINNER UN PLAN               ¦¦¦;
;¦¦¦                     DE GRUE À TOUR LINDEN COMANSA                     ¦¦¦;
;¦¦¦ _______________________________________________________________________ ¦¦¦;

;¦¦¦ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ¦¦¦;
;¦¦¦                   AUTEUR : CadFrank, Copyright ® 2012                   ¦¦¦;
;¦¦¦ _______________________________________________________________________ ¦¦¦;


;¦¦¦            Ce sous-program défini le rayon de la fleche               ¦¦¦;
;¦¦¦                               Vue en plan                               ¦¦¦;


(defun Fleche (/ pt1 p-itm P-fleche p-dbp p-bp p-ListeAdmis)

(setq pt1 (getpoint "\n Selection le point d'implantation de la grue : "))

      (setq P-fleche
             (vla-insertblock
               (vla-get-modelspace
               (vla-get-activedocument
                   (vlax-get-acad-object)))
                     (vlax-3d-point pt1) "LC FLECHE" 1 1 1 0)
      
          );setq fleche
         
   (setq p-dbp (vla-getdynamicblockproperties P-fleche))
   (setq p-dbp (vlax-variant-value p-dbp))
   (setq p-dbp (vlax-safearray->list p-dbp))
   (setq p-bp (car p-dbp))
   (setq p-ListeAdmis (vlax-safearray->list (vlax-variant-value (vla-get-AllowedValues p-bp))))
   (setq p-ListeAdmis (mapcar 'vlax-variant-value p-ListeAdmis))
   (vla-put-value p-bp (strcat R-Fleche " m"))

   

);defun "fin du sous-program FLECHE"


;¦¦¦            Ce sous-program défini le rayon de la fleche               ¦¦¦;
;¦¦¦                              21 LC 170                              ¦¦¦;


(defun Fleche170 (/ f-itm B-fleche f-dbp f-bp f-ListeAdmis)



   (foreach
      f-itm '(("LC CHARGE 170" . (0 70000 0))
            ("LC C-P 170" . (8000 70000 0))
            ("LC B-T 170" . (20000 70000 0))
          ("LC FLECHE 170" . (0 0 0))
             )
   
      (setq B-fleche
             (vla-insertblock
               (vla-get-modelspace
               (vla-get-activedocument
                   (vlax-get-acad-object)))
                     (vlax-3d-point (cdr f-itm)) (car f-itm) 1 1 1 0)

          );setq fleche

   (setq f-dbp (vla-getdynamicblockproperties B-fleche))
   (setq f-dbp (vlax-variant-value f-dbp))
   (setq f-dbp (vlax-safearray->list f-dbp))
   (setq f-bp (car f-dbp))
   (setq f-ListeAdmis (vlax-safearray->list (vlax-variant-value (vla-get-AllowedValues f-bp))))
   (setq f-ListeAdmis (mapcar 'vlax-variant-value f-ListeAdmis))
   (vla-put-value f-bp (strcat R-Fleche " m"))

   );foreach

); defun "fin du sous-program Fleche"


;¦¦¦            Ce sous-program défini le rayon de la fleche               ¦¦¦;
;¦¦¦                              21 LC 210                              ¦¦¦;


(defun Fleche210 (/ f-itm B-fleche f-dbp f-bp f-ListeAdmis)



   (foreach
      f-itm '(("LC CHARGE 210" . (0 70000 0))
            ("LC C-P 210" . (8000 70000 0))
            ("LC B-T 210" . (20000 70000 0))
          ("LC FLECHE 210" . (0 0 0))
             )
   
      (setq B-fleche
             (vla-insertblock
               (vla-get-modelspace
               (vla-get-activedocument
                   (vlax-get-acad-object)))
                     (vlax-3d-point (cdr f-itm)) (car f-itm) 1 1 1 0)

          );setq fleche
         
   (setq f-dbp (vla-getdynamicblockproperties B-fleche))
   (setq f-dbp (vlax-variant-value f-dbp))
   (setq f-dbp (vlax-safearray->list f-dbp))
   (setq f-bp (car f-dbp))
   (setq f-ListeAdmis (vlax-safearray->list (vlax-variant-value (vla-get-AllowedValues f-bp))))
   (setq f-ListeAdmis (mapcar 'vlax-variant-value f-ListeAdmis))
   (vla-put-value f-bp (strcat R-Fleche " m"))

   );foreach

); defun "fin du sous-program Fleche"

;¦¦¦            Ce sous-program défini le rayon de la fleche               ¦¦¦;
;¦¦¦                              21 LC 290                              ¦¦¦;


(defun Fleche290 (/ f-itm B-fleche f-dbp f-bp f-ListeAdmis)



   (foreach
      f-itm '(("LC CHARGE 290" . (0 70000 0))
            ("LC C-P 290" . (8000 70000 0))
            ("LC B-T 290" . (20000 70000 0))
          ("LC FLECHE 290" . (0 0 0))
             )
   
      (setq B-fleche
             (vla-insertblock
               (vla-get-modelspace
               (vla-get-activedocument
                   (vlax-get-acad-object)))
                     (vlax-3d-point (cdr f-itm)) (car f-itm) 1 1 1 0)
      
          );setq fleche
         
   (setq f-dbp (vla-getdynamicblockproperties B-fleche))
   (setq f-dbp (vlax-variant-value f-dbp))
   (setq f-dbp (vlax-safearray->list f-dbp))
   (setq f-bp (car f-dbp))
   (setq f-ListeAdmis (vlax-safearray->list (vlax-variant-value (vla-get-AllowedValues f-bp))))
   (setq f-ListeAdmis (mapcar 'vlax-variant-value f-ListeAdmis))
   (vla-put-value f-bp (strcat R-Fleche " m"))

   );foreach

); defun "fin du sous-program Fleche"


;¦¦¦            Ce sous-program défini le rayon de la fleche               ¦¦¦;
;¦¦¦                              21 LC 550                              ¦¦¦;


(defun Fleche550 (/ f-itm B-fleche f-dbp f-bp f-ListeAdmis)



   (foreach
      f-itm '(("LC CHARGE 550" . (0 70000 0))
            ("LC C-P 550" . (8000 70000 0))
            ("LC B-T 550" . (20000 70000 0))
          ("LC FLECHE 550" . (0 0 0))
             )
   
      (setq B-fleche
             (vla-insertblock
               (vla-get-modelspace
               (vla-get-activedocument
                   (vlax-get-acad-object)))
                     (vlax-3d-point (cdr f-itm)) (car f-itm) 1 1 1 0)
      
          );setq fleche
         
   (setq f-dbp (vla-getdynamicblockproperties B-fleche))
   (setq f-dbp (vlax-variant-value f-dbp))
   (setq f-dbp (vlax-safearray->list f-dbp))
   (setq f-bp (car f-dbp))
   (setq f-ListeAdmis (vlax-safearray->list (vlax-variant-value (vla-get-AllowedValues f-bp))))
   (setq f-ListeAdmis (mapcar 'vlax-variant-value f-ListeAdmis))
   (vla-put-value f-bp (strcat R-Fleche " m"))

   );foreach

); defun "fin du sous-program Fleche"


;¦¦¦                      Se sous-programme sélectionne la                   ¦¦¦;
;¦¦¦                           Séquence de Montage                         ¦¦¦;


(defun Sequence_Montage (/ pt1 blk)

(if (= typ-grue "170")(setq pt1 '((40000 70000 0) . "LC S-M 170")))
(if (= typ-grue "210")(setq pt1 '((40000 70000 0) . "LC S-M 210")))
(if (= typ-grue "290")(setq pt1 '((40000 70000 0) . "LC S-M 290")))
(if (= typ-grue "550")(setq pt1 '((40000 70000 0) . "LC S-M 550")))

(if (setq blk   (vla-insertblock
               (vla-get-modelspace
               (vla-get-activedocument
                   (vlax-get-acad-object)))
                     (vlax-3d-point (car pt1)) (cdr pt1) 1 1 1 0)

)
(progn (setqf-dbp (car (vlax-invoke blk 'GetDynamicBlockProperties)))
      (vla-put-valuef-dbp (strcat R-fleche " m"))
         (vla-put-textstring (car (vlax-invoke blk 'GetAttributes)) N-tour)
         )
   )

(princ)

);fin


;¦¦¦               Ce sous-programme défini le nombre de tour                ¦¦¦;


(defun TourS25 (/ B-tour t-dbp t-bp)

(foreach
    t-itm '(("LC TOUR S25" . (0 0 0))
       )
   
         (setq B-tour
            (vla-insertblock
               (vla-get-modelspace
               (vla-get-activedocument
                   (vlax-get-acad-object)))
                     (vlax-3d-point (cdr t-itm)) (car t-itm) 1 1 1 0)
   
         );setq tour

(setq t-dbp (vla-getdynamicblockproperties B-tour))
(setq t-dbp (vlax-variant-value t-dbp))
(setq t-dbp (vlax-safearray->list t-dbp))
(setq t-bp (caddr t-dbp))
(setq t-ListeAdmis (vlax-safearray->list (vlax-variant-value (vla-get-AllowedValues t-bp))))
(setq t-ListeAdmis (mapcar 'vlax-variant-value t-ListeAdmis))
(vla-put-value t-bp N-tour)

);foreach

);defun "fin du sous-programme Tour"


;¦¦¦               Ce sous-programme défini le nombre de tour                ¦¦¦;

(defun TourD33 (/ B-tour t-dbp t-bp)

(foreach
    t-itm '(("LC TOUR D33" . (0 0 0))
       )
   
         (setq B-tour
            (vla-insertblock
               (vla-get-modelspace
               (vla-get-activedocument
                   (vlax-get-acad-object)))
                     (vlax-3d-point (cdr t-itm)) (car t-itm) 1 1 1 0)
   
         );setq tour

(setq t-dbp (vla-getdynamicblockproperties B-tour))
(setq t-dbp (vlax-variant-value t-dbp))
(setq t-dbp (vlax-safearray->list t-dbp))
(setq t-bp (car t-dbp))
(setq t-ListeAdmis (vlax-safearray->list (vlax-variant-value (vla-get-AllowedValues t-bp))))
(setq t-ListeAdmis (mapcar 'vlax-variant-value t-ListeAdmis))
(vla-put-value t-bp N-tour)

);foreach

);defun "fin du sous-programme Tour"

;¦¦¦                     Se sous-programme sélectionne                     ¦¦¦;
;¦¦¦                              le tableau des                           ¦¦¦;
;¦¦¦                        Dispositifs de Sécurité                        ¦¦¦;

(Defun Dispositif (/ pt2 D-S-blk D-S-dbp V-AGS)

(setq pt2 '((40000 55000 0) . "LC D-S TEXTE"))
(if (= S-AGS "Oui")(setq V-AGS "AVEC AGS"))
(if (= S-AGS "Non")(setq V-AGS "SANS AGS"))

(if (setq D-S-blk (vla-insertblock
               (vla-get-modelspace
               (vla-get-activedocument
                   (vlax-get-acad-object)))
                     (vlax-3d-point (car pt2)) (cdr pt2) 1 1 1 0)

   )
   (progn (setqD-S-dbp (car (vlax-invoke D-S-blk 'GetDynamicBlockProperties)))
          (vla-put-valueD-S-dbp V-AGS )
         
   )
)

(princ)

); fin

;¦¦¦                            Se sous-programme                            ¦¦¦;
;¦¦¦                     Applique les Notes du courant                     ¦¦¦;
;¦¦¦                               Éléctrique                              ¦¦¦;


(defun CourantElect (/ pt4 N-E-dbp C-E N-E-blk)

(setq pt4 '((40000 80000 0) . "LC TEXTE ELECT"))


(vla-insertblock
               (vla-get-modelspace
               (vla-get-activedocument
                   (vlax-get-acad-object)))
                     (vlax-3d-point (car pt4)) (cdr pt4) 1 1 1 0)

(progn (setqN-E-dbp (car (vlax-invoke N-E-blk 'GetDynamicBlockProperties)))
         (vla-put-valueN-E-dbp C-E )
)

(princ)


);fin du sous-programme CourantElect


;¦¦¦                           Début du Programme                            ¦¦¦;


(defun c:grue (/ typ-Grue R-fleche N-tour)

(vl-load-com)
(initget 1 "170 210 290 550")
(setq typ-Grue (getkword "\n Donner le type de grue : "))
   
   (cond ((= typ-Grue "170")
             (initget 1 "60 54 50 44 40 34 30")
             (setq R-Fleche (getkword "\n Donner le rayon de la flèche : ")))
   )      
   (cond ((= typ-Grue "210")
             (initget 1 "64 60 54 50 44 40 34 30")
         (setq R-Fleche (getkword "\n Donner le rayon de la flèche : ")))
   )
   (cond ((= typ-Grue "290")
             (initget 1 "74 70 64 60 54 50 44 40")
         (setq R-Fleche (getkword "\n Donner le rayon de la flèche : ")))
   )
   (cond ((= typ-Grue "550")
             (initget 1 "80 74 70 64 60 50 40")
             (setq R-Fleche (getkword "\n Donner le rayon de la flèche : ")))
   )

(initget 1 "4 5 6 7 8 9 10 11")
(setq N-tour (getkword "\n Donner le nombre de tour : "))

(initget 1 "Oui,O Non,N")
(Setq S-AGS (getkword "\n La grue a-t-elle besoin d'un système Anticolision? "))

(initget 1 "5.0 5.5 6.0 6.5 7.0 7.5 8.0 8.5 9.0 9.5 10.0")
(setq D-Base (getkword "\n Donner la Dimension de la base : : "))

(initget 1 "1.50 1.55 1.60 1.65 1.70 1.75 1.80 1.85 1.90 1.95 2.00")
(setq H-Base (getkword "\n Donner le hauteur de la base : : "))

(Fleche)
(if (= typ-Grue "170")(Fleche210))
(if (= typ-Grue "210")(Fleche210))
(if (= typ-Grue "290")(Fleche290))
(if (= typ-Grue "550")(Fleche550))
(Sequence_Montage)
(if (= typ-Grue "170")(TourS25))
(if (= typ-Grue "210")(TourS25))
(if (= typ-Grue "290")(TourS25))
(if (= typ-Grue "550")(TourD33))
(Dispositif)
(CourantElect)
(BaseBeton)

(princ)

);defun c


;¦¦¦                            Se sous-programme                            ¦¦¦;
;¦¦¦                        Détermine les dimension de                     ¦¦¦;
;¦¦¦                            la base de béton                           ¦¦¦;


(defun BaseBeton (/ pt5 B-B-blk B-B-dbp B-B-bp B-B-ListeAdmis)

(foreach
    pt5 '(("LC BASES" . (60000 60000 0))
       )

(setq B-B-blk (vla-insertblock
               (vla-get-modelspace
               (vla-get-activedocument
                   (vlax-get-acad-object)))
                     (vlax-3d-point (cdr pt5)) (car pt5) 1 1 1 0)
)
   
(setq B-B-dbp (vla-getdynamicblockproperties B-B-blk))
(setq B-B-dbp (vlax-variant-value B-B-dbp))
(setq B-B-dbp (vlax-safearray->list B-B-dbp))
(setq B-B-bp (car (cdr (cdr (cdr (cdr (cdr (cdr (cdr (cdr (cdr B-B-dbp)))))))))))
(setq B-B-ListeAdmis (vlax-safearray->list (vlax-variant-value (vla-get-AllowedValues B-B-bp))))
(setq B-B-ListeAdmis (mapcar 'vlax-variant-value B-B-ListeAdmis))
(vla-put-value B-B-bp (strcat D-Base " m"))      


(setq B-B-dbp (vla-getdynamicblockproperties B-B-blk))
(setq B-B-dbp (vlax-variant-value B-B-dbp))
(setq B-B-dbp (vlax-safearray->list B-B-dbp))
(setq B-B-bp (car (cdr (cdr (cdr (cdr (cdr (cdr (cdr (cdr B-B-dbp))))))))))
(setq B-B-ListeAdmis (vlax-safearray->list (vlax-variant-value (vla-get-AllowedValues B-B-bp))))
(setq B-B-ListeAdmis (mapcar 'vlax-variant-value B-B-ListeAdmis))
(vla-put-value B-B-bp (strcat H-Base " m"))
   
);foreach

(princ)

); fin
 
好的,现在它只在完整代码中不起作用。也会发生零件不工作的情况
 
在这里:
(setq B-B-dbp (vla-getdynamicblockproperties B-B-blk))

CadFrank 发表于 2022-7-5 20:51:23

部分代码工作
 
(defun c:BB (/ pt5 B-B-blk B-B-dbp)

(initget 1 "5.0 5.5 6.0 6.5 7.0 7.5 8.0 8.5 9.0 9.5 10.0")
(setq D-Base (getkword "\n Donner la Dimension de la base : : "))

(initget 1 "1.50 1.55 1.60 1.65 1.70, 1.75 1.80 1.85 1.90 1.95 2.00")
(setq H-Base (getkword "\n Donner le hauteur de la base : : "))

(foreach
    pt5 '(("LC BASES" . (60000 60000 0))
       )

(setq B-B-blk (vla-insertblock
               (vla-get-modelspace
               (vla-get-activedocument
                   (vlax-get-acad-object)))
                     (vlax-3d-point (cdr pt5)) (car pt5) 1 1 1 0)
)

(setq B-B-dbp (vla-getdynamicblockproperties B-B-blk))
(setq B-B-dbp (vlax-variant-value B-B-dbp))
(setq B-B-dbp (vlax-safearray->list B-B-dbp))
(setq B-B-bp (car (cdr (cdr (cdr (cdr (cdr (cdr (cdr (cdr (cdr B-B-dbp)))))))))))
(setq B-B-ListeAdmis (vlax-safearray->list (vlax-variant-value (vla-get-AllowedValues B-B-bp))))
(setq B-B-ListeAdmis (mapcar 'vlax-variant-value B-B-ListeAdmis))
(vla-put-value B-B-bp (strcat D-Base " m"))      


(setq B-B-dbp (vla-getdynamicblockproperties B-B-blk))
(setq B-B-dbp (vlax-variant-value B-B-dbp))
(setq B-B-dbp (vlax-safearray->list B-B-dbp))
(setq B-B-bp (car (cdr (cdr (cdr (cdr (cdr (cdr (cdr (cdr B-B-dbp))))))))))
(setq B-B-ListeAdmis (vlax-safearray->list (vlax-variant-value (vla-get-AllowedValues B-B-bp))))
(setq B-B-ListeAdmis (mapcar 'vlax-variant-value B-B-ListeAdmis))
(vla-put-value B-B-bp (strcat H-Base " m"))

);foreach

(princ)

); fin

CadFrank 发表于 2022-7-5 20:58:30

我想调查一下,我有更多的信息。我运行了代码,但它不会工作,但如果我回到Vlide并进行负载选择,它就会工作。。这很奇怪。。。
 
现在我尝试了其他方法,代码也能正常工作,但我想了解它为什么会这样做。
 
我在主代码中加入了(BaseBeton)并将其上移到顶部,它就工作了。
 
我勒个去。。。。。

pBe 发表于 2022-7-5 21:05:41

无法真正测试代码。不要有完整的块列表来测试它。

CadFrank 发表于 2022-7-5 21:19:22

好吧,我很乐意把一切都寄给你。你有我可以发的电子邮件吗?

pBe 发表于 2022-7-5 21:27:54

 
别担心,没什么大不了的。
无论如何,你的代码为你工作。
 
干杯

Costinbos77 发表于 2022-7-5 21:30:26

我在请求非常强大的计算机时也会出现同样的错误:
 

(wile (progn .... (setq gr (grRead T 15 0)vt (cadr gr)cd (car gr) ) .... )


.....


) ; wh

 
但我发现:http://www.theswamp.org/index.php?topic=24940.0
 
我在while循环中引入了(gc),在AutoCAD 2013中运行良好。
页: [1]
查看完整版本: ; 错误:发生异常:0