I dette blogindlæg vil jeg diskutere en fejl, der opstår under automatisering af opgaver i AutoCAD ved hjælp af pythoncom-modulet.- Pythoncom-modulet er et AutoCAD-automatiseringsmodul i Python. Jeg vil også give en løsning på det samme. Fejlen, som jeg vil håndtere, er fejlen “Opkaldet blev afvist af den opkaldte”.
Årsag til fejlen “Opkaldet blev afvist af den opkaldte”.
Hovedårsagen til at få denne fejl, mens du arbejder med AutoCAD-automatisering ved hjælp af pythoncom, er opkaldshastigheden. Dvs. hastigheden på at foretage opkald.
De efterfølgende opkald, som vi foretager for at udføre visse opgaver i AutoCAD, er hurtigere, end applikationen kan håndtere.
Dette giver i sidste ende fejlen ‘Opkaldet blev afvist af den opkaldte’.
Løsning på fejlen “Opkaldet blev afvist af den opkaldte”.
For at løse dette problem kan vi bruge ‘sleep’-metoden ved at importere ‘time’-modulet til Python.
time.sleep(5)
Denne metode skal udføres efter udførelse af visse tunge funktioner, som bruger en betydelig mængde computerressourcer under udførelse af opgaver. Vi skal sende parametre som sekunder for at suspendere en proces af den aktuelle tråd i et bestemt tidsrum.
Som nævnt i koden ovenfor suspenderer jeg udførelsen i 5 sekunder.
Eksemplarisk applikation til at løse fejlen
Koden nævnt nedenfor repræsenterer en underproces af en kode. Jeg skal slå viewporten til for at udføre visse opgaver på viewporten. Men mens jeg arbejder med flere visningsporte, ender jeg med at få fejlen “Opkaldet blev afvist af den ringede”.
For at afbøde det samme tvinger jeg processen til at vente i 0,5 sekunder og derefter fortsætte.
def turn_on_viewport(viewport):
viewport.ViewportOn = True
print("Viewport On: " + str(viewport.ViewportOn))
time.sleep(0.5)
For yderligere flere blogindlæg, der dækker AutoCAD-automatisering, se venligst vores andre blogindlæg relateret til pyautocad og pywin32 .
Efterlad venligst eventuelle spørgsmål, du måtte have, som en kommentar nedenfor. Du er velkommen til at kontakte os for teknisk assistance. Det kan du gøre ved at bruge vores kontaktformular.
Leave a Reply