; 错误:发生异常:0
你好,我想知道是否有人看到过这个错误。; 错误:发生异常:0xC0000005(访问冲突)
; 警告:未知异常时跳过了展开
如果他们知道如何修复它。。因为当我运行代码时,它会这样做。
谢谢你的帮助!
干杯和啤酒 一定是密码。
你能给我们提供更多的信息吗,弗兰克?谢谢
你知道导致错误的代码行吗? 是的,当我在另一个文件中单独运行这部分代码时。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)) 部分代码工作
(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
我想调查一下,我有更多的信息。我运行了代码,但它不会工作,但如果我回到Vlide并进行负载选择,它就会工作。。这很奇怪。。。
现在我尝试了其他方法,代码也能正常工作,但我想了解它为什么会这样做。
我在主代码中加入了(BaseBeton)并将其上移到顶部,它就工作了。
我勒个去。。。。。 无法真正测试代码。不要有完整的块列表来测试它。 好吧,我很乐意把一切都寄给你。你有我可以发的电子邮件吗?
别担心,没什么大不了的。
无论如何,你的代码为你工作。
干杯 我在请求非常强大的计算机时也会出现同样的错误:
(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]